android自定义属性
来源:互联网 发布:2015全球社交网络排名 编辑:程序博客网 时间:2024/06/07 00:18
1、创建自定义类
创建自定义类 MyView
<com.example.testh5.view.MyView android:layout_width="wrap_content" android:layout_height="wrap_content" sdj:name = "abc" sdj:age="10" sdj:color="@drawable/bg_shap" />
此时会报错,因为缺少了sdj这个命名空间,as提示补充
xmlns:sdj="http://schemas.android.com/apk/res-auto"
2、创建attrs.xml文件
在values下新建xml资源文件 attrs
<?xml version="1.0" encoding="utf-8"?><resources> <!-- 定义名字为MyView属性集合--> <declare-styleable name="MyView"> <attr name="name" format="string"/> <attr name="age" format="integer"/> <attr name="color" format="reference|color"/> </declare-styleable></resources>
3、使用attrs文件定义的属性
在自定义view的构造方法中 使用AttributeSet
a.通过命名空间获取属性
String name = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto", "name"); String age = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto", "age"); String color = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto", "color");
b.遍历属性集合
for(int i =0;i<attrs.getAttributeCount();i++){ System.out.print(attrs.getAttributeName(i)+"===="+attrs.getAttributeValue(i)); }
c.使用TypedArray获取属性值
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MyView);for (int i = 0;i<typedArray.getIndexCount();i++){ int index = typedArray.getIndex(i); switch (index){ case R.styleable.MyView_name: myname = typedArray.getString(index); break; case R.styleable.MyView_age: break; case R.styleable.MyView_color: Drawable drawable = typedArray.getDrawable(index); BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable; break; }}//回收typedArray.recycle();
阅读全文
0 0
- Android自定义控件 自定义属性
- Android自定义view自定义属性
- Android 自定义控件 自定义属性
- Android自定义View-自定义属性
- android 自定义控件自定义属性
- Android自定义View-自定义属性
- android 自定义控件属性
- android自定义属性
- Android自定义属性
- android 里自定义属性
- android自定义属性
- Android自定义控件属性
- Android 中自定义属性
- Android自定义属性
- android 自定义控件属性
- android自定义属性
- android 自定义xml属性
- android使用自定义属性
- ES查询-match VS match_phrase
- hadoop 等一系列问题
- os模块关于路径
- ArrayList自动扩容解析
- Tips:error C4996: 'GetVersionExA': 被声明为已否决
- android自定义属性
- eclipse必须知道的配置
- Leetcode练习 #55 Jump Game
- 文件下载
- ArrayList、LinkedList、Vector的区别
- 套接字 boost asio
- 设计模式(32)--传输对象模式
- RabbitMQ默认端口
- 服务器上传,时间超时 tomcat 如何设置保持连接