1.自定义View的构造函数调用的场景

package com.sina.myapplication;import android.content.Context;
import android.util.AttributeSet;
import android.view.View;import androidx.annotation.Nullable;public class Textview extends View {//在new Textview类的时候调用public Textview(Context context) {super(context);}//在layout布局中使用public Textview(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}//在layout布局中使用, 并且携带Stylepublic Textview(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);//布局的宽高都是由此指定//指定控制的狂傲,需要测量//可以获取XML中设置的宽高的模式int widthMode = MeasureSpec.getMode(widthMeasureSpec);int heightMode = MeasureSpec.getMode(heightMeasureSpec);//在布局中指定了wrap_contentif (widthMode == MeasureSpec.AT_MOST);//在布局中获取一个确切的值,match_parent,fill_parentif(widthMode == MeasureSpec.EXACTLY);//在布局中尽可能大,ListView,ScrollView中会使用if(widthMode == MeasureSpec.UNSPECIFIED);}
}

2.ListView,ScrollView显示不全的解决方法。方案为重写onMeasure该方法。

package com.sina.myapplication;import android.content.Context;
import android.util.AttributeSet;
import android.view.View;import androidx.annotation.Nullable;public class MyListView extends View {public MyListView(Context context) {super(context);}public MyListView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}public MyListView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);/*widthMeasureSpec,heightMeasureSpec:总计32位,会包含两个信息,1.值,30位,MAX_VALUE>>2。 2.模式,MeasureSpec.AT_MOST 2位。*/super.onMeasure(widthMeasureSpec, heightMeasureSpec);}
}

【安卓开发 】Android初级开发(五)自定义View相关推荐

  1. Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  2. Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习...

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  3. 安卓(Android)开发百度语音唤醒(识别)

    安卓(Android)开发百度语音唤醒(识别) 目录 安卓(Android)开发百度语音唤醒(识别) 一:准备 1:获取自定义唤醒词 2:SDK下载 3:将bdasr_V3_xxx_xxx.jar引入 ...

  4. Android初级开发笔记-- activity启动模式的学习(1)

    第一次学习Android中一个很重要的概念,启动模式.文章记录的也只是一些入门知识,随着学习的深入还会有activity启动模式的学习(2)和(3). 下面分三个小点说一下对启动模式的理解区别以及如何 ...

  5. 安卓(android)开发应该怎么学?需要哪些基础知识?

    随着智能手机的流行,现在很多大大小小的开发商都需要在手机上具备客户端,这里是一片强大的吸金磁场,那么很多想学习android的朋友,都会有个疑问,那就是:安卓(android)应该怎么学,需要哪些基础 ...

  6. Android动画特效之自定义View

      Android动画特效之Animator属性动画实现_Angel-杭州的博客-CSDN博客   我在百忙之中抽出宝贵时间来实现Android动画特效,也就是Android Animator动画效果 ...

  7. 移动端app开发-03-IOS 初级开发入门教程

    移动端app开发-03-IOS 初级开发入门教程 什么是iOS   iOS是苹果公司为它的移动设备(iPhone.iPad.iWatch等)开发的移动操作系统. iOS发展史 2007年苹果发布iPh ...

  8. Android实现雪花特效自定义view

    一.前言 这个冬天,老家一直没有下雨, 正好圣诞节,就想着制作一个下雪的特效. 圣诞祝福:平安夜,舞翩阡.雪花飘,飞满天.心与心,永相伴. 圣诞节是传统的宗教节日,对于基 督徒,那是庆祝耶稣的诞生,纪 ...

  9. Android 气泡动画(自定义View类)

    Android 气泡动画(自定义View类) 一.前言 二.代码 1. 随机移动的气泡 2.热水气泡 一.前言 最近有需求制作一个水壶的气泡动画,首先在网上查找了一番,找到了一个文章. https:/ ...

最新文章

  1. usaco Healthy Holsteins
  2. A标签中通过href和onclick传递的this对象实现思路
  3. 【APP接口开发】chrome浏览器DHC工具安装使用(亲测有效)
  4. java 异常继承体系_1、异常概述和继承体系 2、原因及处理方式 3、运行时异常 4、重写异常处理 5、Throwable类常见方法 6、自定义异常...
  5. 当音乐博士开始写代码...
  6. 产品经理技能树之 需求规范
  7. viewpager初始化fragment没有绘制_NDK OpenGL ES渲染系列 之 绘制三角形
  8. Mybatis-generator的使用
  9. 专访凯美瑞德研发总监孟江华:银行间市场操作系统的自主可控亟待加强
  10. 从web层运作流程认识Struts2
  11. tomcat8.0安装及配置
  12. 本地化ASP.NET core模型绑定错误消息
  13. 360主机卫士linux安装软件,360主机卫士linux版|360主机卫士 for Linux v0.5.7官方版 - 121下载站...
  14. 51单片机------闪烁灯(实验报告)
  15. 基于Labview的水位水温控制系统——虚拟仪器实验设计报告
  16. 第五章面向对象编程设计与开发
  17. 加密狗android,Android系统加密狗的设计与实现
  18. 文化苦旅(新版) 读后感
  19. c语言用递归的方法插入排序,c语言,递归法的选择排序。为什么运行出错。。。求赐教...
  20. 用Kbuilder制作卡拉OK教程

热门文章

  1. junit编写测试代码_编写数据访问代码测试-不测试框架
  2. 使用sstableloader恢复Cassandra Priam备份
  3. junit测试设置不回滚_正确设置JUnit测试名称
  4. Java 11:将集合转换为数组
  5. Jenkins在AWS上(第1部分)
  6. JDK Bug系统浪费时间
  7. 使用React和Spring Boot构建一个简单的CRUD应用
  8. java核心面试_Java核心面试问题
  9. ejb java_EJB继承与Java继承不同
  10. 对状态代码使用JAX-RS异常