Android中自定义属性基本步骤

Android中自定义属性基本步骤

这次只是说明最简单的自定义属性流程

1. 创建资源文件: resources/attr.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="test">
        <attr name="test" format="string" />
        <attr name="testArr" format="integer" />
    </declare-styleable>
</resources>

2. 自定义view类

public class MyTextView extends View{
    private static final String TAG = "MyTextView";

    public MyTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        TypedArray ta = context.obtainStyledAttributes(attrs,R.styleable.test);
        String text = ta.getString(R.styleable.test_testArr);
        int textAttr = ta.getInteger(R.styleable.test_text, -1);
        Log.e(TAG, "text:"+text+",textAttr:"+textAttr);

        ta.recycle();
    }
}

3. 在布局文件中使用

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:yxm="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="org.xm.customview.MainActivity">

    <org.xm.customview.MyTextView
        android:layout_width="100dp"
        android:layout_height="200dp"
        yxm:testArr="20"
        yxm:text="xiaoming" />
</RelativeLayout>

注意

androidstudio中使用:xmlns:yxm="http://schemas.android.com/apk/res-auto"自动导入命名控件

如果在eclipse中要使用完成的包名,如:xmlns:sdf="http://schemas.android.com/apk/res/org.xm.customview"

给自定义属性添加参数使用制定定义的命名空间,例如: yxm:testArr="20"

4. 实现自定义View,获取自定义属性

public class MyTextView extends View{
    private static final String TAG = "MyTextView";

    public MyTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        TypedArray ta = context.obtainStyledAttributes(attrs,R.styleable.test);
        String text = ta.getString(R.styleable.test_text);
        int textAttr = ta.getInteger(R.styleable.test_testArr, -1);
        Log.e(TAG, "text:"+text+",textAttr:"+textAttr);

        ta.recycle();
    }
}

注意

R.styleable.test_text中 text_是自动添加的(必须写),然后添加属性名字text

所以最后会打印:text:xiaoming,textAttr:20, 还是很简单的吧!

时间: 2024-11-05 23:27:27

Android中自定义属性基本步骤的相关文章

Android中自定义属性(attrs.xml,TypedArray的使用)

做Android布局是件很享受的事,这得益于他良好的xml方式.使用xml可以快速有效的为软件定义界面.可是有时候我们总感觉官方定义的一些基本组件不够用,自定义组件就不可避免了.那么如何才能做到像官方提供的那些组件一样用xml来定义他的属性呢?现在我们就来讨论一下他的用法.1.添加文件attrs.xml,位于res\values目录下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <resources>

【转】Android中自定义控件的步骤

原文网址:http://blog.csdn.net/lianchen/article/details/48038969 Android开发中难免遇到需要自定义控件的需求,有些是产品的要求在Android标准控件库中没有满足要求的,有些是开发过程中没有代码的可复用,自己定义的. 一个好的自定义控件应当和Android本身提供的控件一样,封装了一系列的功能以供开发者使用,不仅具有完备的功能,也需要高效的使用内存和CPU.Android本身提供了一些指标:1. 应当遵守Android标准的规范(命名,

Android中自定义控件的步骤

Android开发中难免遇到需要自定义控件的需求,有些是产品的要求在Android标准控件库中没有满足要求的,有些是开发过程中没有代码的可复用,自己定义的. 一个好的自定义控件应当和Android本身提供的控件一样,封装了一系列的功能以供开发者使用,不仅具有完备的功能,也需要高效的使用内存和CPU.Android本身提供了 一些指标: 1. 应当遵守Android标准的规范(命名,可配置,事件处理等). 2. 在XML布局中科配置控件的属性. 3. 对交互应当有合适的反馈,比如按下,点击等. 4

Android中自定义属性的使用

做Android布局是件很享受的事,这得益于他良好的xml方式.使用xml可以快速有效的为软件定义界面.可是有时候我们总感觉官方定义的一些基本组件不够用,自定义组件就不可避免了.那么如何才能做到像官方提供的那些组件一样用xml来定义他的属性呢?现在我们就来讨论一下他的用法. 一.在res/values文件下定义一个attrs.xml文件,代码如下: <?xml version="1.0" encoding="utf-8"?> <resources&

Android中自定义属性的格式详解

自定义属性格式一共有十种: 1. reference:参考某一资源ID. 2. color:颜色值. 3. boolean:布尔值. 4. dimension:尺寸值. 5. float:浮点值. 6. integer:整型值. 7. string:字符串. 8. fraction:百分数. 9. enum:枚举值. 10. flag:位或运算. 1. reference:参考某一资源ID. (1)属性定义: <declare-styleable name = "名称">

Android自定义控件并且使其可以在xml中自定义属性

为什么要自定义View android开发中自定义View的好处是显而易见的.比如说下面的这个顶部导航,它被设计出现在应用的每个界面,但每次的内容却不尽相同.我们不能在每个layout资源中都配置一组相同的View吧?如果使用<include layou="@layout/xxx"/>标签,虽然解决了布局文件的重用性,但是相关View的初始化设置还是没能够重用(集中),需要每次都采用view.findViewById(id)来初始化他们. 有了对"可重用性&quo

Unity中加入Android项目的Build步骤

简介: 有的项目需要在Android中加入Unity功能,例如ANDROID应用中嵌入Unity3D视图(展示3D模型) 有的项目需要在Unity中加入Android功能,例如3D语音天气球(源码分享)——创建可旋转的3D球 由于Android中的功能和代码只能当作一个Unity插件,需要在Unity进行最终的Build后生成apk文件运行. 所以无论上面两种情况都涉及了在Unity中加入Android项目的Build步骤: 步骤: 1.确保Android工程代码正确,然后在Eclipse中bu

Android之自定义属性

有些时候会觉得Android中提供的控件不能满足项目的要求,所以就会常常去自定义控件.自定义控件就不免会自定义属性.自定义属性大致需要三个步骤:在XML文件中定义自定义属性的名称和数据类型.在布局中调用自定义属性.在代码中获取自定义属性.下面来详细的解析一下这三个步骤. 一.在XML文件中定义自定义属性的名称和数据类型 在项目的res/values文件夹下新建一个attrs.xml的文件,在文件中设置自定义属性的名称和类型.代码如下: 1 <?xml version="1.0"

Android自定义控件的实现步骤(二)

前天已经写了一个关于自定义控件的实现步骤的博客,这个是附上代码的详细版本 首先,我们得新建一个attrs.xml的资源文件,在上面添加我们将要自定义控件的额外属性,就是自定义控件的自定义属性,具体代码如下: <resources> <declare-styleable name="TestView"> <attr name="textColor" format="color"></attr> <