您的位置:首页 > 移动开发 > Android开发

Android中自定义属性

2017-02-08 09:55 253 查看

背景交代:

这里使用的是自定义的FrameLayout,命名为RationLayout

public class RatioLayout extends FrameLayout{


在布局文件中使用

<shan.yan.view.RatioLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
shan:mattr="2" >




具体步骤:

1.自定义属性 attrs.xml 文件,这里定义了mattr属性和枚举类型,具体内容如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<declare-styleable name="RatioLayout">
<attr name="mattr" format="float" />
<!-- 枚举类型的定义 -->
<attr name="enums">
<enum name="width" value="0" />
<enum name="height" value="1" />
</attr>
</declare-styleable>

</resources>


2.在布局文件中使用:

<shan.yan.view.RatioLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
shan:mattr="2" >


3.在自定义类中获取:

public RatioLayout(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.RatioLayout);

float mattr = typedArray.getFloat(R.styleable.RatioLayout_picRatio, 0.0f);

typedArray.recycle();
}


枚举类型的获取:

typedArray.getInt(R.styleable.RatioLayout_enums, 0);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息