Android读取自定义View属性

时间:2022-07-02 13:03:46

Android读取自定义View属性

attrs.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources> <declare-styleable name="MyView">
<attr name="MyViewColor" format="color"/>
</declare-styleable> </resources>

activity_main.xml :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:background="@color/background"
android:layout_width="match_parent"
android:layout_height="match_parent"> <com.my.MyView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:MyViewColor="@color/pink"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="16dp"/>
</RelativeLayout>

MyView.java :

public MyView(Context context, AttributeSet attrs) {
super(context, attrs, defStyle); if (attrs!= null) {
TypedArray attr = context.obtainStyledAttributes(attrs, R.styleable.MyView, 0, 0);
if (attr != null) {
try {
mMyViewColor = attr.getColor(R.styleable.MyViewColor, getColor(android.R.color.white)); } finally {
attr.recycle();
}
} }