
Android 自定义控件
文章平均质量分 71
野猿新一
这个作者很懒,什么都没留下…
展开
-
Android最简单的自定义控件示例
其中第四种是最简单也是最常用的方式,通过继承LinearLayout等已有的ViewGroup,里面再放一些Buttong、TextView等其他已有的控件或ViewGroup,把他们组装起来就形成了一个新的自定义控件,再通过自定义的属性就可以对控件的一些属性进行赋值,达到复用的效果。代码很简单,功能也很简单,就是一个标题栏,可以通过app:title_name自定义属性设置标题,虽然简单,但是写法很通用。虽然说很简单,但是每次写要重新百度下怎么写,这里写一个自定义的标题栏当做备忘,也分享给大家。原创 2023-03-21 22:32:16 · 718 阅读 · 1 评论 -
Android View scrollTo()和scroll()By()学习备忘
scroll滑动的是View的内容而不是View的实际位置,比如滑动一个TextView,滑动的是里面的文字内容,背景并不会移动scroll改变的是mScrollX和mScrollY的值mScrollX值为正,内容向左移,值为负,内容向右移mScrollY值为正,内容向上移,值为负,内容向下移scrollBy()内部实际调用的是scrollTo()方法,scrollBy实现的是相对移动,scrollTo()实现的是绝对移动。原创 2022-10-19 09:25:08 · 814 阅读 · 0 评论 -
Android onMeasure()测量结果的保存和获取
本文所分析源码为Android4.1 SDK中的源码我们知道onMeasure()方法对view进行测量后必须调用setMeasuredDimension()方法来对测量结果进行保存,否则会抛IllegalStateException异常。原创 2022-10-11 15:02:09 · 1365 阅读 · 0 评论 -
Android View的onMeasure()源码分析
onMeasure()方法用来对View进行测量,确定测量的宽高onMeasure()方法是在measure()方法中调用的,measure()方法是final方法不能够重写,所以继承View实现自定义控件的时候只需重写onMeasure()方法,而无需关注measure()方法onMeasure()方法里涉及的方法有如下几个,我们一个个分析onMeasure。原创 2022-10-11 10:00:36 · 1135 阅读 · 0 评论 -
Android View的measure()方法源码分析
mPrivateFlags &= ~MEASURED_DIMENSION_SET先把MEASURED_DIMENSION_SET标志位清除置0,在onMeasure()方法里调用setMeasuredDimension()方法后会重新把MEASURED_DIMENSION_SET标志位置1。该方法用来测量View的测量宽高,由父View调用,两个参数widthMeasureSpec和heightMeasureSpec是父View对子View宽高的约束,由父View计算并传入。原创 2022-10-10 14:46:25 · 563 阅读 · 0 评论 -
Android 中MeasureSpec的创建规则
在Android中,View的onMeasure()方法用来对控件进行测量,确定控件的宽高。该方法的两个参数widthMeasureSpec和heightMeasureSpec由父View计算后传入子view的measure()方法,再由子view的measure()方法传入onMeasure()方法,本文将介绍MeasureSpec的创建规则子view的MeasureSpec创建规则如下表所示。原创 2022-10-10 00:33:09 · 717 阅读 · 0 评论 -
Android MeasureSpec详解
我们在自定义控件的时候经常要重写View的onMeasure方法,onMeasure方法有两个int类型的参数,这两个参数就是MeasureSpec,这两个参数可不是普通的int数值,里面包含了mode和size两个信息,一个int有32位二进制,用高2位表示mode,低30位表示size,这样在一个int里面包含两个数值信息的设计,是为了减少对象的创建和内存的分配onMeasure()方法用来测量空间的宽高,方法中的MeasureSpec参数由控件的父布局传入,是父View对子View的宽高的约束。原创 2022-10-09 13:45:44 · 1027 阅读 · 0 评论