android自定义xmls文件属性

时间:2024-01-06 16:52:26

在使用到自定义View的xml布局文件中需要加入xmlns:前缀=http://schemas.android.com/apk/res/你的自定义View所在的包路径.

下面是一个简单的例子:

结构图:

android自定义xmls文件属性

MyView.java

package kexc.myView;

import android.content.Context;

import android.content.res.TypedArray;

import android.util.AttributeSet;

import android.widget.TextView;

public class MyView extends TextView {  

    private String mString = "Welcome to Kesion's blog";

    

    public MyView(Context context, AttributeSet attrs) {

  super(context, attrs);

  TypedArray a = context.obtainStyledAttributes(attrs,  

                R.styleable.MyView);

  int textColor = a.getColor(R.styleable.MyView_textColor,  

                0XFFFFFFFF);  

        float textSize = a.getDimension(R.styleable.MyView_textSize, 36);  

        mString = a.getString(R.styleable.MyView_title);

  setText(mString);

  setTextSize(textSize);

  setTextColor(textColor);

 }

}

main.xml

<?xml version="1.0" encoding="utf-8"?>  

<LinearLayout   

 xmlns:android="http://schemas.android.com/apk/res/android

 xmlns:test="http://schemas.android.com/apk/res/kexc.myView"

    android:orientation="vertical"  

    android:layout_width="fill_parent"  

    android:layout_height="fill_parent">  

 <TextView    

     android:layout_width="fill_parent"   

     android:layout_height="wrap_content"   

     android:text="@string/hello"  

     />  

 <kexc.myView.MyView 

     android:layout_width="fill_parent"   

     android:layout_height="fill_parent"

     test:title="wo shi text"

     test:textSize="20px"  

     test:textColor="#fff"  

 />

</LinearLayout>

属性文件 value/attrs.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

 <declare-styleable name="MyView">  

        <attr name="textColor" format="color"/>  

  <attr name="textSize" format="dimension" />  

  <attr name="title" format="string"/>

 </declare-styleable>

</resources>

运行结果:

android自定义xmls文件属性