<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="CustomView"> <attr name="tColor" format="color" /> <attr name="tSize" format="dimension" /> </declare-styleable> </resources>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:test="http://schemas.android.com/apk/res/com.hzhi.customview" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <com.hzhi.customview.CustomView android:id="@+id/cusView"android:layout_width="wrap_content"android:layout_height="wrap_content"test:tColor="#00FFFF"test:tSize="30dp" > </com.hzhi.customview.CustomView></RelativeLayout>
// Constructor public CustomView (Context context, AttributeSet attrs) {super (context, attrs); // obtain TypedArrayTypedArray a = context. obtainStyledAttributes (attrs, R. styleable. customView); // obtain attrs. the attribute value in xml. Format: name_attribute name. The default value is int tColor =. getColor (R. styleable. customView_tColor, Color. GREEN); float tSize =. getDimension (R. styleable. customView_tSize, 35); p. setColor (tColor); p. setTextSize (tSize); // returns a signal indicating the end of the bound resource to resource. recycle ();}