本文主要是介绍如何在android style/layout文件中使用自定义属性。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
自定义属性:
<declare-styleable name="facepanelStyle">
<!-- 底部Tab分割线背景 -->
<attr name="tabSpiltColor" format="color" />
</declare-styleable>
Style:引用自定义属性
<style name="test">
<item name="android:background">#ddd</item>
<item name="tabSpiltColor">#f6f6f6</item>
</style>
//此处并不需要引用报名,或者定义命名空间
layout:中引用
<test.CustomView
style="@style/ftest"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
代码中得到属性值:
1、
public CustomView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public CustomView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
_context = context;
getFacepanelStyle(attrs, defStyle);
}
private void getFacepanelStyle(AttributeSet attrs, int defStyle) {
if (attrs != null) {
TypedArray typedArray = _context.obtainStyledAttributes(attrs, R.styleable.facepanelStyle, defStyle, 0);
int n = typedArray.getIndexCount();
for (int i = 0; i < n; i++) {
int attr = typedArray.getIndex(i);
switch (attr) {
case R.styleable.facepanelStyle_tabSpiltColor:
tabBackground = typedArray.getColor(attr, Color.GRAY);
break;
}
}
typedArray.recycle();
}
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>
如果在layout文件中直接使用
1, xmlns:expression=http://schemas.android.com/apk/包名“ //包名不好使时可换成res-auto
2,
<test.CustomView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
expression:tabSpiltColor="#f6f6f6"
/>
这篇关于如何在android style/layout文件中使用自定义属性。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!