android 自定义 xml 属性
2014-12-15 11:01
253 查看
按照/article/5894821.html
以及
http://gundumw100.iteye.com/blog/1040917
尝试了一把自定义xml tag, 很简单,按部就班来就基本不会有问题,
在最后一步犯2了,在引入自己新的自定义的xmlns时,应该在使用了自定义VIew的layout xml文件中使用,而不是在 自定义view本身的layout xml文件中使用,
因为自定义的xml属性是对外的,那么自然设置以及引入相应的命名空间要在使用了自定view的layout文件中,自定义xml属性的设置也是在使用了自定义view的
layout文件中,而不是自定义view自己的layout文件。
还要注意的是 获取里面属性用 "名字_ 属性" 连接起来, declare-styeable 意思就是将这一坨attr 包在 一个 叫 MyLinearLayout的 styleable中。
那么在定义view的code里:
其实从生成的R.java文件也可以看出来。
真正在xml使用中:
注意自定义的所有namesapce和属性都是在使用了 自定义View 的 layout文件中设置, 而不是在 自定义View 自己本身的layout 文件中。
至于 attrs.xml中的命名规则,懒得try了,按照教程的建议吧,虽然命名规则可能比较宽松.
以及
http://gundumw100.iteye.com/blog/1040917
尝试了一把自定义xml tag, 很简单,按部就班来就基本不会有问题,
在最后一步犯2了,在引入自己新的自定义的xmlns时,应该在使用了自定义VIew的layout xml文件中使用,而不是在 自定义view本身的layout xml文件中使用,
因为自定义的xml属性是对外的,那么自然设置以及引入相应的命名空间要在使用了自定view的layout文件中,自定义xml属性的设置也是在使用了自定义view的
layout文件中,而不是自定义view自己的layout文件。
还要注意的是 获取里面属性用 "名字_ 属性" 连接起来, declare-styeable 意思就是将这一坨attr 包在 一个 叫 MyLinearLayout的 styleable中。
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="MyLinearLayout"> <attr name="My_src" format="reference"/> <attr name="My_text" format="string"/> </declare-styleable> </resources>
那么在定义view的code里:
switch (attrName) { case R.styleable.MyLinearLayout_My_src: mImageView.setImageResource( attrArray.getResourceId(R.styleable.MyLinearLayout_My_src, R.drawable.ic_launcher)); break; case R.styleable.MyLinearLayout_My_text: mTextView.setText(attrArray.getString(R.styleable.MyLinearLayout_My_text)); break; }注意从R.styleable.中使用自定义属性时,要前面加 类名_
其实从生成的R.java文件也可以看出来。
真正在xml使用中:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fyf="http://schemas.android.com/apk/res/com.example.fyf" android:id="@+id/root" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <Button android:id="@+id/inval" android:text="Refresh" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <com.example.fyf.SimpleView android:id="@+id/simple" android:background="@drawable/bender03pb" android:layout_width="50dp" android:layout_height="50dp"/> <com.example.fyf.MyLinearLayout android:id="@+id/myLinear" android:layout_width="500dp" android:layout_height="500dp" fyf:My_text="MY TEXT VIEW" fyf:My_src="@drawable/bender03pb" </LinearLayout>
注意自定义的所有namesapce和属性都是在使用了 自定义View 的 layout文件中设置, 而不是在 自定义View 自己本身的layout 文件中。
至于 attrs.xml中的命名规则,懒得try了,按照教程的建议吧,虽然命名规则可能比较宽松.
相关文章推荐
- android自定义视图属性(atts.xml,TypedArray)学习
- android 自定义xml属性
- Android自定义XML属性以及遇到的命名空间的问题
- Android自定义控件:如何使用自定义的XML属性
- Android 自定义属性 attrs.xml
- Android自定义View及自定义控件属性declare-styleable:自定义控件的属性(attr.xml,TypedArray)的使用
- Android自定义属性:attr.xml 与 TypedArray
- 『ANDROID』android自定义视图属性(atts.xml,TypedArray)学习
- android中通过自定义xml实现你需要的shape效果 xml属性配置
- Android自定义View 自定义xml属性设置
- Android之Merge及自定义属性attrs.xml使用 推荐
- Android自定义XML属性以及遇到的命名空间的问题
- android在自定义View的xml中设置自定义的成员属性
- android自定义视图属性(atts.xml,TypedArray)学习
- 为Android自定义部件(widget)实现自定义的XML配置属性
- (转)android自定义视图属性(atts.xml,TypedArray)学习
- android自定义视图属性(atts.xml,TypedArray)学习
- android中通过自定义xml实现你需要的shape效果 xml属性配置
- android自定义view的自定义属性在xml中快捷键显示问题
- Android高手之路之Android中的自定义属性attr.xml、TypedArray的使用