为什么需要自定义控件?
系统自带的控件有好多不能够达到需要实现的功能或是控件不够美观
解决办法:
1.继承某一控件,然后对它进行重写来实现自己的一些功能
2.直接继承View自己定义自己的控件
Android中自定义属性(attrs.xml,TypedArray的使用)
Android中自定义控件的步骤(特别详细)
MOCK 课程
3.组合控件
参考文章1
参考文章2
源代码
步骤:
1.写好自定义属性 res/values/attrs.xml
2.编写自定义控件的java类 变量声明
3.构造方法中,解析从布局文件中读取的自定义属性:
TypedArray t=
context.obtainStyledAttributes(attr,R.styleable.CustonView);
titleText = ta.getString(attr);
textSize = ta.getDimension(attr,0);
titleText = ta.getColor(attr,0x000000); //默认颜色
attr.recycle();
4.设置属性值
tv.setTextSize(textSize);
tv.setColor(titleText);
NOTICE:
当做完这一步的时候,我们的自定义控件已经能够在布局文件中进行使用了,但是我们还不能在AdapterView中用我们设计的布局文件,因为AdapterView中每一个item属性都是在java代码中动态设置的,因此我们就需要给我们的自定义控件开放属性设置的接口,我们这里暂时只开放了设置图片和文字内容的接口
5.自定义控件的使用 activity_main.xml
在布局文件中使用自定义控件
xmlns:carrey=”http://schemas.android.com/apk/res/com.carrey.customview”