自定义控件——自定义视图属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义控件——自定义视图属性相关的知识,希望对你有一定的参考价值。
一、新建工程
二、创建类并继承View
package com.example.l01myrect; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.view.View; /** * Created by 袁磊 on 2017/2/6. */ public class MyRect extends View { public MyRect(Context context) { super(context); } public MyRect(Context context, AttributeSet attrs) { super(context, attrs); TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.MyView); int color = ta.getColor(R.styleable.MyView_rect_color, 0xffff0000);//红色 setBackgroundColor(color); ta.recycle();//TypedArray调用结束后务必调用recycle()方法,否则这次的设定会对下次的使用造成影响 } }
三、values文件夹中自定义属性attrs
<?xml version="1.0" encoding="utf-8"?> <resources> <!--根标签--> <declare-styleable name="MyView"> <!--定义若干个declare-styleable,name定义了变量的名称--> <attr name="rect_color" format="color" /> <!--自定义多个属性,name为名称,format为属性类型--> </declare-styleable> </resources>
四、activity_main中使用自定义控件类MyRect
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yl="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.example.l01myrect.MyRect android:layout_width="100dp" android:layout_height="100dp" yl:rect_color="#ff0000ff" /> <!--蓝色--> </LinearLayout>
运行效果
以上是关于自定义控件——自定义视图属性的主要内容,如果未能解决你的问题,请参考以下文章