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. hadoop常用命令之hdfs
  2. 《spring揭秘》读书笔记三
  3. python技巧:拆分多层嵌套列表
  4. 【Mysql】Mysql数据表区分大小写问题解决方案
  5. python split函数 空格_python上手--10行代码读懂红楼梦
  6. python实战===生成随机数
  7. liunx下pytorch(python2.7)先前几个版本的安装(由于官网点击先前版本进不去)
  8. 网站并发cpu占用率_来,控制一下 goroutine 的并发数量
  9. IDC发布人工智能白皮书:信息流引领人工智能新时代
  10. 杰·亚伯拉罕的产品营销35种策略完整版
  11. 深入理解Binder机制
  12. postgresql数据库修改md5密码,口令认证
  13. 下载keep运动软件_Keep下载_Keep苹果官方免费版APP下载[健身运动]-下载之家
  14. 《天龙八部》地形研究
  15. iOS 3级滚动地址
  16. 字典(dict)的反转
  17. 直播平台搭建iOS 版本打包上架
  18. Kafka操作之kafka-topics
  19. 超150亿元市场启动!智能汽车中间件出圈背后仍存挑战
  20. 数据结构课设——汉诺塔游戏演示

热门文章

  1. activiti自定义_在Activiti中执行自定义查询
  2. jsf 后台参数到页面_JSF:直接从页面将参数传递给JSF操作方法,这是JavaEE 6+的一个不错的功能...
  3. jpa配置映射包_JPA – Hibernate –包级别的类型映射
  4. hibernate jpa_JPA / Hibernate:基于版本的乐观并发控制
  5. java ee开发环境_设置Java EE 6开发环境
  6. JBoss BRMS复杂事件处理(CEP)性能基准
  7. Java 8功能教程– ULTIMATE指南(PDF下载)
  8. 快速分类–三向和双枢轴
  9. Apache Apollo REST API
  10. 哪个Java线程消耗了我的CPU?