Android custom property step, android custom step
Whether a program can attract users, beautiful UI and excellent interaction are crucial factors. Therefore, most applications do not meet the requirements of the UI components provided by the system, but use custom components to achieve better display. Custom Attributes are used in most cases when custom components are used. This document records several steps for custom attributes:
1. Plan the attribute names and types you need to define.
2. Create an attrs. xml file under the res/values directory, and define the previously planned attributes in attrs. xml. The details are as follows:
1 <declare-styleable name="MyTextView">2 <attr name="textColor" format="color"/>3 <attr name="textSize" format="dimension"/>4 <attr name="text" format="string"/>5 <attr name="background" format="reference|color"/>6 </declare-styleable>
3. After the property is defined, you must obtain the value of the custom property in the Custom View in the constructor to implement the custom view. The custom attributes are referenced by R. styleable. To obtain the attributes, you must use the "name_attribute" method. After TypeArray is used, perform recycle () as follows:
1 public MyTextView(Context context, AttributeSet attrs) { 2 super(context, attrs); 3 mTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); 4 TypedArray typeArray = context 5 .obtainStyledAttributes(attrs, R.styleable.MyTextView); 6 7 mTextColor = typeArray.getColor(R.styleable.MyTextView_textColor, Color.BLACK); 8 mTextSize = typeArray.getDimension(R.styleable.MyTextView_textSize, 14); 9 mText = typeArray.getString(R.styleable.MyTextView_text);10 11 mTextBackground = typeArray.getColor(R.styleable.MyTextView_background, Color.WHITE);12 13 mTextPaint.setColor(mTextColor);14 mTextPaint.setTextSize(mTextSize);15 mTextPaint.setTypeface(Typeface.DEFAULT);16 17 typeArray.recycle();18 }
4. Implement the custom view, and then use the custom view to set the custom view value in xml. As follows:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:mytextview = "http://schemas.android.com/apk/res/com.example.viewdemo" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:orientation="vertical" > 7 8 <com.example.view.textview.MyTextView 9 android:layout_width="500dp"10 android:layout_height="wrap_content"11 mytextview:text="my name is text view , i am a text view"12 mytextview:textSize="20sp"13 mytextview:textColor="#000000"14 mytextview:background="#ffffff"15 />16 17 </LinearLayout>
Pay special attention to the statement marked with red. You need to set xmlns to reference the custom attributes defined above. The namespace is "mytextview" and the value is "http://schemas.android.com/apk/res/???package name =com.example.viewdemo= ". Then, the following custom view tag uses the namespace: attribute name to assign values to the custom attribute.
In this way, our custom attributes are completed, and you can get and use the attribute values in the Custom view.