Android自定义view自定义属性怎么使用,请牛人指导

 我来答
锺芮0G30d3
2016-06-14 · TA获得超过628个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:160万
展开全部

首先定义一下自定义属性,一种好的习惯是自定义的属性集合的名字要和使用这些属性的自定义View的类名一致,当然, 这个也不是必须的, 比如如下的属性集合, 也可以用在OtherCustomeView里。

<declare-styleable name="DrawableTextView">
   <attr name="drawableHeight" format="dimension"/>
   <attr name="drawableWidth" format="dimension"/>
</declare-styleable>


布局文件中定义DrawableTextView的时候, 就可以使用定义好的自定义属性了,如app:开头的属性。

<com.shwy.bestjoy.view.DrawableTextView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/model_my_customer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/defaultBlueButtonColor"
    android:textSize="22sp"
    android:text="@string/model_my_customer"
    android:gravity="center_vertical"
    android:drawableLeft="@drawable/model_my_customer_icon"
    android:drawablePadding="10dip"
    app:drawableHeight="45dip"
    app:drawableWidth="45dip" />


在DrawableTextView.java类里读出属性值

public DrawableTextView(Context context, AttributeSet attrs) {
    super(context, attrs);

    TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.DrawableTextView);
    //图片的高度
    mDrawableHeight = typedArray.getDimensionPixelSize(R.styleable.DrawableTextView_drawableHeight, 0);
    mDrawableWidth = typedArray.getDimensionPixelSize(R.styleable.DrawableTextView_drawableWidth, 0);
    typedArray.recycle();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式