`

Android之 declare-styleable:自定义控件的属性(attr.xml,TypedArray)的使用

阅读更多
一、在res/values文件下定义一个attrs.xml文件,代码如下
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="ToolBar"> 
        <attr name="buttonNum" format="integer"/> 
        <attr name="itemBackground" format="reference|color"/> 
    </declare-styleable> 
</resources>


在布局xml中如下使用该属性:
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:toolbar="http://schemas.android.com/apk/res/cn.zzm.toolbar" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <cn.zzm.toolbar.ToolBar android:id="@+id/gridview_toolbar" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:background="@drawable/control_bar" 
        android:gravity="center" 
        toolbar:buttonNum="5" 
        toolbar:itemBackground="@drawable/control_bar_item_bg"/> 
</RelativeLayout>


三、在自定义组件中,可以如下获得xml中定义的值:

    TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.ToolBar);
    buttonNum = a.getInt(R.styleable.ToolBar_buttonNum, 5);
    itemBg = a.getResourceId(R.styleable.ToolBar_itemBackground, -1);
    a.recycle();


<declare-styleable name="ToolBar"></declare-styleable>包围所有属性:

1\   其中name为该属性集的名字,主要用途是标 识该属性集
2\  "R.styleable.ToolBar_buttonNum",在每个属性前面都加了"ToolBar_"

   [string , integer , dimension , reference , color , enum]

转自:
http://linapex.blog.163.com/blog/static/189237516201251553056418/
分享到:
评论

相关推荐

    自定义控件控件的declare-styleable配置

    最近在模仿今日头条,发现它的很多属性都是通过自定义控件并设定相关的配置属性进行配置,于是便查询了解了下declare-styleable,下面我把自己的使用感受和如何使用进行说明下。 declare-styleable:declare-...

    Android中自定义控件的declare-styleable属性重用方案

    最近接触了Android自定义控件,涉及到自定义xml中得属性(attribute),其实也很简单,但是写着写着,发现代码不完美了,就是在attrs.xml这个文件中,发现属性冗余,于是就想有没有类似属性继承或者include之类的方法....

    Android-ImageView-hover:自定义 ImageView,在 ImageView 的属性中设置悬停效果

    /declare-styleable &gt; 第 2 步:自定义 ImageView(MyImageView.java) public class MyImageView extends ImageView { ... } 第 3 步:在布局 xml 中声明 myattr : xmlns:myattr=" " &lt; LinearLayout xmlns:...

    Android代码-MultipleTheme

    第一步:在项目的attr.xml声明自定义属性(各种模式都会用到的属性) Setup 1:declare attribute in attr.xml 第二步:在项目的style.xml指定各种模式主题下的自定义属性值 Setup 2:declare attribute in ...

    详解Android自定义控件属性

    在Android开发中,往往要用到自定义的控件来实现我们的需求或效果。在使用自定义 控件时,难免要用到自定义属性,那怎么使用自定义属性呢? 在文件res/values/下新建attrs.xml属性文件,中定义我们所需要的属性。 ...

    Android自定义View--01

    自定义view起步 1,新建attrs.xml文件,增加declare-styleable 2,实现android.view.View 3,在layout.xml 使用自定义view

    oracle数据库时间函数

    1、CONVERT在日期转换中的使用示例 --字符转换为日期时,Style的使用   --1. Style=101时,表示日期字符串为:mm/dd/yyyy格式 SELECT CONVERT(datetime,'11/1/2003',101) --结果:2003-11-01 00:00:00.000   --2. ...

    CircularProgress-一个模仿android L中载入视图的控件.zip

     android:layout_margin="8dp"/&gt;属性说明&lt;declare-styleable name="CircularProgressView"&gt;  &lt;attr name="borderWidth" format="dimension" /&gt; // 圆弧边框的宽度  &lt;attr name="colorSequence" format=...

    Android 自定义view时用到的TypedArray

    在自定义控件的时候,如果我们想额外的添加一些属性,就会用到TypedArray这个类,那么这个类是怎么得到的,以及怎么使用的,这里作个简单介绍。 创建自定义属性 首先创建values\attrs.xml,在attrs.xml中声明自定义...

    Android雷达图(蜘蛛网图)源码

    &lt;declare-styleable name="MyNetPic"&gt; &lt;attr name="lineColor" format="color"/&gt;&lt;!-- 线的颜色 --&gt; &lt;attr name="cotentColor" format="color"/&gt;&lt;!-- 图形的颜色 --&gt; &lt;attr name="side" format="dimension"/&gt; &lt;!-...

    仿qq侧滑代码

    &lt;declare-styleable name="MyLeftContent"&gt; &lt;attr name="rightPadding"&gt;&lt;/attr&gt; &lt;/declare-styleable&gt; 4 在主界面布局文件中(res/layout)把最外层标签换成:包名.MyLeftContent(例如:...

    Android自定义组件:2、如何实现和使用自定义组件、自定义属性

    (1)declare-styleable子元素 (2)attrs.xml 文件只做属性的描述 步骤2:写自定义类 步骤3:使用自定义组件、自定义属性 三、效果展示-简单小结 1、效果展示 2、执行流程 3、可以不写 attrs.xml 文件 4、问题 四、...

    view自定义属性使用and more

    declare-styleable 在res/values目录下新建xml文件 自定义你的属性 2. AttributeSet和TypedArray 在view中获取这些属性对应的值,设置绑定到view上 3. xmlns申明与引用 在你要使用的地方引入命名空间并使用这些...

    PieGraphDemo-自定义饼状图效果.zip

    代码介绍:&lt;declare-styleable name="PieGraph"&gt;  &lt;!-- 饼状图的半径 --&gt;  &lt;attr name="pie_circle_radius" format="dimension" /&gt;  &lt;!-- 选中时候的那一块往外拉的距离 --&gt;  &lt;attr ...

    ZoomHoverView-点击放大悬浮View磁贴效果.zip

    自定义属性&lt;declare-styleable name="ZoomHoverView"&gt;  &lt;!--每行多少列--&gt;  &lt;attr name="zhv_column_num" format="integer"/&gt;  &lt;!--分割线--&gt;  &lt;attr name="zhv_divider" format=...

    android实现图片验证码方法解析(自绘控件)

    自绘控件的内容都是自己绘制出来的 大致流程如下: 1.定义一个类继承view ...declare-styleable 声明自定义属性可以自定义一个新属性也可以引用已经存在的属性两者的区别就是新属性需要添加format进行类型的定义 3

    GifImageView.java

    &lt;declare-styleable name="GifImageView"&gt; &lt;!--gif文件引用--&gt; &lt;attr name="gif_src" format="reference" /&gt; &lt;!--是否加载完自动播放--&gt; &lt;attr name="auth_play" format="boolean" /&gt; &lt;!--播放次放,默认永远...

    RainyView-Android 自定义View之下雨动画 效果.zip

     &lt;declare-styleable name="RainyView"&gt;  &lt;!--雨滴的颜色--&gt;  &lt;attr name="raindrop_color" format="color"&gt;&lt;/attr&gt;  &lt;!--左边云的颜色--&gt;  &lt;attr name="left_cloud_color" format="color"&gt;...

    typed-css-modules:从CSS模块.css文件创建.d.ts文件

    键入CSS模块 从.css文件创建TypeScript定义文件。 如果您具有以下CSS, ...declare const styles : { readonly "primary" : string ; readonly "myClass" : string ; } ; export = styles ; 因此,您可以将C

Global site tag (gtag.js) - Google Analytics