Android中自定义属性

来源:互联网 发布:有赞源码下载 编辑:程序博客网 时间:2024/06/05 15:53

背景交代:

这里使用的是自定义的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);




0 0
原创粉丝点击