Android中自定义控件
来源:互联网 发布:属下知罪by枯目剧透 编辑:程序博客网 时间:2024/05/29 12:50
一、 自绘控件
继承View,重写View的onMeasure()、onLayout()、onDraw()步骤:
1在attrs.xml文件中定义组件属性(attr标签)、声明组件样式(declare-styleable标签),组件属性的取值类型有string,color,demension,integer,enum等。
2然后在布局文件中声明自定义的组件,组件的命名要指定为自定义View类的全路径,在布局文件里还要引入我们自己的包命名空间。
3继承View,自定义View的实现类,在View的构造方法中通过TypedArray获得view的属性,然后重写onMesure()方法和onDraw(),onMesure()方法用于测量view的宽和高,如果在布局文件中设置了view的layout_width和layout_height的具体值,系统帮我们测量的结果就是我们设置的结果,如果设置为WRAP_CONTENT或MATCH_PARENT系统帮我们测量的结果就是MATCH_PARENT的长度,宽高计算完毕后,必须调用setMeasuredDimession(int width, int height)进行设置,否则会抛出一个异常。OnLayout用于确定view的位置。
onDraw()方法提供了Canvas对象,在onDraw()方法中对Canvas绘制,最终显示的就是这个Canvas对象。
总结:xml文件中自定义View属性;继承View自定义View的实现类,在View的构造方法中加载xml文件,获得我们自定义的属性,重写onMesure、onLayout、onDraw。
二、继承布局类(如LinearLayout),组合多个已有的组件
1写xml布局文件,在布局文件中定义多个组件
2写布局类,在布局类的构造方法中加载布局文件,找到布局中的组件,之后在布局类中设置组件的属性(设置文字颜色、文字大小、设置onClickListener)
3在Activity的布局文件中引入自定义的view(用布局类的全路径引入),在Activity中通过findViewbyId找到自定义的view,通过view中的方法对view进行操作。
三、继承现有的组件(TextView、Button、ListView),添加新功能,形成自定义组件
参考:http://blog.csdn.net/jdsjlzx/article/details/41113969
http://blog.csdn.net/lmj623565791/article/details/24252901/
http://blog.csdn.net/lianchen/article/details/48038969
http://blog.csdn.net/shineflowers/article/details/41348565
- Android中自定义控件
- android中自定义控件
- Android中自定义控件
- android中自定义控件
- Android中自定义控件
- Android中自定义控件
- android 中自定义控件View
- Android中自定义组合控件
- Android中自定义控件View
- Android 中自定义控件总结
- Android中自定义组合控件
- Android中自定义控件和组合控件
- android中自定义控件的用法
- android应用程序中使用自定义Toast控件
- 关于android 中自定义spinner控件
- Android中布局或控件自定义背景
- Android中自定义控件和属性
- Android中探讨自定义控件View
- Ubuntu 18.10可能取消对 32 位的支持!
- Java 实现最优路径查找算法(伪Leetcode路径查找算法)
- JZOJ 4822. 【NOIP2016提高A组集训第1场10.29】完美标号
- 编程常识
- 深入剖析Ehcache开源缓存框架
- Android中自定义控件
- SQL concept
- Git分支的前世今生
- mysql 忘记密码怎么办
- Git的使用
- Python介绍
- java虚拟机
- (2016-10-28)Android-NDK学习笔记(一)生成简单的SO文件
- 《把时间当朋友》摘录