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"
下面是一个简单的例子:
结构图:
![](http://hi.csdn.net/attachment/201110/27/0_1319705520P4sa.gif)
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 自定义的xmlns其实很简单,语法规则是:
在使用到自定义View的xml布局文件中需要加入xmlns:前缀="http://schemas.android.com/apk/res/你的自定义View所在的包路径"
或者
xmlns:前缀="http://schemas.android.com/apk/res-auto"
下面是一个简单的例子:
结构图:
![](http://hi.csdn.net/attachment/201110/27/0_1319705520P4sa.gif)
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>
运行结果:
![](http://hi.csdn.net/attachment/201110/27/0_1319705228MA5B.gif)
相关文章推荐
- Android Touch事件分发机制
- android IPC通信机制梳理
- 逆向分析 Android 程序- 内存内存
- android 自定义View
- Android 上下文菜单(长摁弹出)
- Android开发中常用的工具类
- android 控件注意点
- android:showAsAction = "never"那么这句话是做什么用的呢
- ubuntu16的android studio无法输入中文的折腾流程
- android 使用LocationClient获取精度,纬度坐标
- android 自定义ProgressBar
- Android开发 如何快速实现分享功能
- 文章标题
- Android百度定位API使用方法
- android之图片切圆角
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Android Dev Intro - Camera addCallbackBuffer
- android布局属性
- Android 自定义时区
- androidstudio无法启动,Failed to create a child event loop