Android 自定义控件学习笔记
2016-07-06 20:57
295 查看
为什么需要自定义控件?
系统自带的控件有好多不能够达到需要实现的功能或是控件不够美观
解决办法:
1.继承某一控件,然后对它进行重写来实现自己的一些功能
2.直接继承View自己定义自己的控件
Android中自定义属性(attrs.xml,TypedArray的使用)
Android中自定义控件的步骤(特别详细)
MOCK 课程
3.组合控件
参考文章1
参考文章2
源代码
步骤:
1.写好自定义属性 res/values/attrs.xml
2.编写自定义控件的java类 变量声明
3.构造方法中,解析从布局文件中读取的自定义属性:
4.设置属性值
NOTICE:
当做完这一步的时候,我们的自定义控件已经能够在布局文件中进行使用了,但是我们还不能在AdapterView中用我们设计的布局文件,因为AdapterView中每一个item属性都是在java代码中动态设置的,因此我们就需要给我们的自定义控件开放属性设置的接口,我们这里暂时只开放了设置图片和文字内容的接口
5.自定义控件的使用 activity_main.xml
在布局文件中使用自定义控件
xmlns:carrey=”http://schemas.android.com/apk/res/com.carrey.customview”
系统自带的控件有好多不能够达到需要实现的功能或是控件不够美观
解决办法:
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”
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories