一.自定義View的流程java
1.屬性設置android
在styles.xml中設置控件屬性,若是你想直接harcode能夠忽略這步spa
<!--name爲聲明的"屬性集合"名,能夠隨便取,可是最好是設置爲跟咱們的View同樣的名稱--> <declare-styleable name="MyView"> <!--聲明咱們的屬性,名稱爲default_size,取值類型爲尺寸類型(dp,px等)--> <attr name="default_size" format="dimension" /> </declare-styleable>
在這裏關聯的是View是MyViewcode
2.建立自定義View,跟styles.xml配置保持一致orm
public class MyView extends View {
private int defalutSize;
public MyView(Context context) {
super(context);
}
public MyView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyView);
defalutSize = a.getDimensionPixelSize(R.styleable.MyView_default_size, 100); // 獲取styles.xml配置的屬性,R文件名稱:R.styleable+屬性集合名稱+下劃線+屬性名稱
a.recycle();
}
...
}
3.view的顯示xml
假設我要在主界面顯示個人viewblog
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:hc="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:text="sdasdasds"/> <com.example.qingge.drawviewtest.MyView android:layout_width="match_parent" android:layout_height="100dp" hc:default_size="100dp" /> </LinearLayout>