Android declare-styleable自定义控件属性

第一步:  在values文件夹下面建立attr.xml文件,在这个文件中定义自定义属性

比如:

[java] view
plain
copy

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <declare-styleable name="MultiDirectionSlidingDrawer">  
  4.         <attr name="handle" format="dimension"></attr>  
  5.         <attr name="content" format="dimension"></attr>  
  6.         <attr name="allowSingleTap" format="boolean"></attr>  
  7.         <attr name="animateOnClick" format="boolean"></attr>  
  8.         <attr name="bottomOffset" format="dimension"></attr>  
  9.         <attr name="topOffset" format="dimension"></attr>  
  10.             <attr name="direction" >  
  11.                 <enum name="rightToLeft" value="0" />  
  12.                 <enum name="bottomToTop" value="1" />  
  13.                 <enum name="leftToRight" value="2" />  
  14.                 <enum name="topToBottom" value="3" />  
  15.             </attr>  
  16.     </declare-styleable>  
  17. </resources>  

第二步:使用,自定义属性的使用是在布局中使用

第三步:在自定义控件中使用。

注意要在有三个参数的构造方法中才能获取到。

第一部分的命名就是

[java] view
plain
copy

  1. declare-styleable   

关于自定义属性的设置问题:

  fomat的属性自己定义  根据自己的需要来选择string , integer , dimension , reference , color , enum......

reference:参考指定Theme中资源ID。

dimension:尺寸值

float:浮点型

boolean:布尔值

integer:整型

string:字符串

fraction:百分数

flag:位或运算

Color:颜色

enum:枚举

其他都很简单,一看就会,枚举的特殊些,就是把能选的值列举出来,在布局中设置属性的时候就只能选择在attr.xml中定义的枚举的值

比如:

[java] view
plain
copy

  1. <attr name="direction" >  
  2.             <enum name="rightToLeft" value="0" />  
  3.             <enum name="bottomToTop" value="1" />  
  4.             <enum name="leftToRight" value="2" />  
  5.             <enum name="topToBottom" value="3" />  
  6.         </attr>  

在使用的时候如图: 在构造方法中取值就会取到对应的value中的值。

属性定义时可以指定多种类型值:

1
2
3
    <declare-styleable name = "名称">
	<attr name="background"       format="reference|color" />
    </declare-styleable>

使用:

1
<ImageView android:background = "@drawable/图片ID|#00FF00"/>
时间: 2024-11-08 18:03:39

Android declare-styleable自定义控件属性的相关文章

详解Android自定义控件属性TypedArray以及attrs

最近在研究android自定义控件属性,学到了TypedArray以及attrs.大家也可以结合<理解Android中的自定义属性>这篇文章进行学习,后续一篇还有应用. 1.attrs文件编写 <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="titleText" format="string" /> &

浅析Android手机卫士自定义控件的属性_Android

推荐阅读:浅析Android手机卫士关闭自动更新 上一节完成的自定义组合控件,灵活性不够,控件的显示信息上,仿照系统属性,自定义自己的属性 上一节组合控件SettingItemView中有三个控件,分别是TextView大标题,TextView描述,CheckBox复选框 自定义属性 tsh:title="大标题" 和tsh:desc_on="小标题开启",tsh:desc_off="小标题关闭" 添加命名空间,xmlns:tsh="h

浅析Android手机卫士自定义控件的属性

推荐阅读:浅析Android手机卫士关闭自动更新 上一节完成的自定义组合控件,灵活性不够,控件的显示信息上,仿照系统属性,自定义自己的属性 上一节组合控件SettingItemView中有三个控件,分别是TextView大标题,TextView描述,CheckBox复选框 自定义属性 tsh:title="大标题" 和tsh:desc_on="小标题开启",tsh:desc_off="小标题关闭" 添加命名空间,xmlns:tsh="h

Android自定义控件属性详细介绍

Android自定义控件属性详细介绍 1. reference:参考某一资源ID. (1)属性定义: <declare-styleable name = "名称"> <attr name = "background" format = "reference" /> </declare-styleable> (2)属性使用: <ImageView android:layout_width = "4

eclipse-android自定义控件属性报错

问题描述 android自定义控件属性报错 用eclipse开发 删掉定义的两个属性就正常了 添加后R文件最后就会少一个括号 不知道什么原因 解决方案 Android 自定义控件与属性Android自定义控件属性Android自定义控件属性 解决方案二: 是不是因为括号不成对呀? 解决方案三: 你把光标放到错误那,看看报的什么错误,这样才能有针对性的解决方法.

Android开发进阶自定义控件之滑动开关实现方法【附demo源码下载】_Android

本文实例讲述了Android开发进阶自定义控件之滑动开关实现方法.分享给大家供大家参考,具体如下: 自定义开关控件 Android自定义控件一般有三种方式 1.继承Android固有的控件,在Android原生控件的基础上,进行添加功能和逻辑. 2.继承ViewGroup,这类自定义控件是可以往自己的布局里面添加其他的子控件的. 3.继承View,这类自定义控件没有跟原生的控件有太多的相似的地方,也不需要在自己的肚子里添加其他的子控件. ToggleView自定义开关控件表征上没有跟Androi

Android 自定义view和属性动画实现充电进度条效果_Android

近期项目中需要使用到一种类似手机电池充电进度的动画效果,以前没学属性动画的时候,是用图片+定时器的方式来完成的,最近一直在学习动画这一块,再加上复习一下自定义view的相关知识点,所以打算用属性动画和自定义view的方式来完成这个功能,将它开源出来,供有需要的人了解一下相关的内容. 本次实现的功能类似下面的效果: 接下来便详细解析一下如何完成这个功能,了解其中的原理,这样就能举一反三,实现其他类似的动画效果了. 详细代码请看大屏幕 https://github.com/crazyandcoder

Android 自定义view和属性动画实现充电进度条效果

近期项目中需要使用到一种类似手机电池充电进度的动画效果,以前没学属性动画的时候,是用图片+定时器的方式来完成的,最近一直在学习动画这一块,再加上复习一下自定义view的相关知识点,所以打算用属性动画和自定义view的方式来完成这个功能,将它开源出来,供有需要的人了解一下相关的内容. 本次实现的功能类似下面的效果: 接下来便详细解析一下如何完成这个功能,了解其中的原理,这样就能举一反三,实现其他类似的动画效果了. 详细代码请看大屏幕 https://github.com/crazyandcoder

统计图-android AChartEngine圆环相关属性,求大神帮忙

问题描述 android AChartEngine圆环相关属性,求大神帮忙 一:想将圆环半径缩小,用renderer.setScale(1.2f)的话还是一样粗,想变细 二:这边还有一个圆点,标题去掉了,但点留着,想去掉,有谁做过吗?或者用别的什么办法能够实现带标题的圆环图? 解决方案 google code上有例子 http://code.google.com/p/achartengine/ 解决方案二: 注意需要代理才能访问. 解决方案三: 你好,很幸运刚好看到你提这个问题,因为我有个图表跟

Android开发之自定义控件用法详解_Android

本文实例讲述了Android开发之自定义控件用法.分享给大家供大家参考,具体如下: 今天和大家分享下组合控件的使用.很多时候android自定义控件并不能满足需求,如何做呢?很多方法,可以自己绘制一个,可以通过继承基础控件来重写某些环节,当然也可以将控件组合成一个新控件,这也是最方便的一个方法.今天就来介绍下如何使用组合控件,将通过两个实例来介绍. 第一个实现一个带图片和文字的按钮,如图所示: 整个过程可以分四步走.第一步,定义一个layout,实现按钮内部的布局.代码如下: custom_bu