您的位置:首页 > 移动开发 > Android开发

Android 自定义xmlns

2016-05-17 09:48 429 查看
转自:http://blog.csdn.net/bruce_ke/article/details/6911237

Android 自定义的xmlns其实很简单,语法规则是:

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

或者

xmlns:前缀="http://schemas.android.com/apk/res-auto"

下面是一个简单的例子:

结构图:



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>

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: