Android自定义属性

原创 2015年07月08日 17:54:44

Android自定义View有时需要自定义属性,然后动态获取属性值来影响view的展现。下面通过例子来说明Android自定义属性的过程,大体过程有:

  • 通过<declare-styleable> 声明自定义的属性
  • 通过xmlns:设置命名空间,引用属性,设置属性值
  • 通过TypedArray在代码里动态获取属性值

过程详细如下:
1、在工程目录res/values/attrs.xml下通过<declare-styleable>标签申明要自定义的属性,设置<attr>的name和format属性,format属性的设置参考:http://blog.csdn.net/wonengxing/article/details/15340827

<resources>
   <declare-styleable name="PieChart">
       <attr name="showText" format="boolean" />
       <attr name="labelPosition" format="enum">
           <enum name="left" value="0"/>
           <enum name="right" value="1"/>
       </attr>
   </declare-styleable>
</resources>

2、现在可以在xml布局文件中使用自定义的属性,但这些属性不属于http://schemas.android.com/apk/res/android 命名空间,而是属于命名空间:http://schemas.android.com/apk/res/[your package name],如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:custom="http://schemas.android.com/apk/res/com.example.customviews">
 <com.example.customviews.charting.PieChart
     custom:showText="true"
     custom:labelPosition="left" />
</LinearLayout>

3、在代码中获取设置的属性值

public PieChart(Context context, AttributeSet attrs) {
   super(context, attrs);
   TypedArray a = context.getTheme().obtainStyledAttributes(
        attrs,
        R.styleable.PieChart,
        0, 0);

   try {
       mShowText = a.getBoolean(R.styleable.PieChart_showText, false);
       mTextPos = a.getInteger(R.styleable.PieChart_labelPosition, 0);
   } finally {
       a.recycle();//最后务必要调用recycle()方法,否则会对下次使用造成影响
   }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android自定义属性

  • 2015-08-08 01:22
  • 1.37MB
  • 下载

Android自定义属性,format详解

1. reference:参考某一资源ID。     (1)属性定义:                 ...

AttrTest android自定义属性

  • 2013-03-12 18:51
  • 984KB
  • 下载

Android自定义属性,attr format取值类型

转载链接:http://www.cnblogs.com/rayray/p/3442026.html 1. reference:参考某一资源ID。 (1)属性定义: declare-s...

Android自定义属性理解和应用

在Android开发的过程中,为了在用户界面上添加Android自带的View,可以在一个xml布局中指定一个View,并通过它相应的元素属性控制该View的外观和行为。 但是,有时候我们需要自己定义...
  • xyzjl
  • xyzjl
  • 2015-07-20 20:18
  • 1089

菜鸟进阶之深入理解android自定义属性(AttributeSet,TypedArray)

酝酿了很久,终于可以写篇关于android自定义属性的文章了,本来这篇文章的名字没有"菜鸟进阶之"的,然后发现这里的内容挺有难度,配得上这5个字了。 这里牵扯几个类比如AttributeSet、Typ...

Android自定义属性

在自定义控件时,有时候会用到自定义属性,那么如何自定义属性呢?步骤如下: 1.在res/values中创建attrs.xml文件,代码如下: 在上面的代码...

Android自定义属性分析

Android自定义属性分析

一、Android自定义属性,attr format取值类型

前言 在学习自定义控件的时候,避免不了使用自定义属性。下面总结了自定义属性的定义以及用法备忘。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)