Android中自定义属性与格式标签详解

在Android项目的实际开发中,免不了要自定义一些控件或者view,更高深一点的自定义view也应该可以直接在xml自定义属性,今天就来分享下自定义属性的格式。

1. reference:参考某一资源ID

属性定义:

<declare-styleable name="名称">    <attr name="background" format="reference" /></declare-styleable>

属性使用:

<ImageView    android:layout_width="42dip"    android:layout_height="42dip"    android:background="@drawable/图片ID" />

2. color:颜色值

属性定义:

<declare-styleable name="名称">    <attr name="textColor" format="color" /></declare-styleable>

属性使用:

<TextView    android:layout_width="42dip"    android:layout_height="42dip"    android:textColor="#00FF00" />

3. boolean:布尔值

属性定义:

<declare-styleable name="名称">    <attr name="focusable" format="boolean" /></declare-styleable>

属性使用:

<Button    android:layout_width="42dip"    android:layout_height="42dip"    android:focusable="true" />

4. dimension:尺寸值

属性定义:

<declare-styleable name="名称">    <attr name="layout_width" format="dimension" /></declare-styleable>

属性使用:

<Button    android:layout_width="42dip"    android:layout_height="42dip" />

5. float:浮点值

属性定义:

<declare-styleable name="AlphaAnimation">    <attr name="fromAlpha" format="float" /> <attr name="toAlpha" format="float" /></declare-styleable>

属性使用:

<alpha    android:fromAlpha="1.0"    android:toAlpha="0.7" />

6. integer:整型值

属性定义:

<declare-styleable name="AnimatedRotateDrawable">    <attr name="visible" /> <attr name="frameDuration" format="integer" />    <attr name="framesCount" format="integer" /> <attr name="pivotX" />    <attr name="pivotY" /> <attr name="drawable" /></declare-styleable>

属性使用:

<animated-rotate    xmlns:android="http://schemas.android.com/apk/res/android"    android:drawable="@drawable/图片ID"    android:frameDuration="100"    android:framesCount="12"    android:pivotX="50%"    android:pivotY="50%" />

7. string:字符串

属性定义:

<declare-styleable name="MapView">    <attr name="apiKey" format="string" /></declare-styleable>

属性使用:

<com.google.android.maps.MapView    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:apiKey="0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g" />

8. fraction:百分数

属性定义:

<declare-styleable name="RotateDrawable">    <attr name="visible" /> <attr name="fromDegrees" format="float" />    <attr name="toDegrees" format="float" /> <attr name="pivotX" format="fraction" />    <attr name="pivotY" format="fraction" /> <attr name="drawable" /></declare-styleable>

属性使用:

<rotate    xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="5000"    android:fromDegrees="0"    android:interpolator="@anim/动画ID"    android:pivotX="200%"    android:pivotY="300%"    android:repeatCount="infinite"    android:repeatMode="restart"    android:toDegrees="360" />

9. enum:枚举值

属性定义:

<declare-styleable name="名称">    <attr name="orientation">        <enum name="horizontal" value="0" /> <enum name="vertical" value="1" />    </attr></declare-styleable>

属性使用:

<LinearLayout    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" />

10. flag:位或运算

属性定义:

<declare-styleable name="名称">    <attr name="windowSoftInputMode">        <flag name="stateUnspecified" value="0" /> <flag name="stateUnchanged" value="1" />        <flag name="stateHidden" value="2" /> <flag name="stateAlwaysHidden" value="3" />        <flag name="stateVisible" value="4" /> <flag name="stateAlwaysVisible" value="5" />        <flag name="adjustUnspecified" value="0x00" /> <flag name="adjustResize" value="0x10" />        <flag name="adjustPan" value="0x20" /> <flag name="adjustNothing" value="0x30" />    </attr></declare-styleable>

属性使用:

<activity    android:name=".StyleAndThemeActivity"    android:label="@string/app_name"    android:windowSoftInputMode="stateUnspecified | stateUnchanged | stateHidden" >    <intent-filter>        <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />    </intent-filter></activity>

注意

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

属性定义:

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

属性使用:

<ImageView    android:layout_width="42dip"    android:layout_height="42dip"    android:background="@drawable/图片ID|#00FF00" />

更多相关文章

  1. 【转】Android通过共享用户ID来实现多Activity进程共享
  2. Cordova自定义插件实战
  3. andorid自定义progress
  4. Android(安卓)property属性机制
  5. Android:创建可穿戴应用 - 自定义布局
  6. Android成长(三)——页面布局
  7. Android中自定义ViewGroup实现表格展示学员信息
  8. Android使用动画的注意事项
  9. Google 开源的 Android(安卓)排版库:FlexboxLayout

随机推荐

  1. [Android]电话拨号器开发
  2. android图表收益曲线-MPAndroidChart
  3. Android中的常用控件之进度条(ProgressBar
  4. h5页面与Android原生页面交互
  5. Android之Adapter用法总结
  6. Android(安卓)开发实践 Lambda表达式的使
  7. Android自定义Dialog对话框
  8. Google Inbox如何跨平台重用代码?
  9. Android系统介绍与框架
  10. Android(安卓)- 文件读写操作总结