背景交代:
这里使用的是自定义的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);