Android自定义View【实战教程】1⃣️----attrs.xml详解

来源:互联网 发布:pxe网络装机 编辑:程序博客网 时间:2024/06/05 21:07

我们在自定义View的时候通常需要先完成attrs.xml文件
在values中定义一个attrs.xml 然后添加相关属性
这一篇先详细介绍一下attrs.xml的属性。

<?xml version="1.0" encoding="utf-8"?><resources>    //自定义属性名,定义公共属性    <attr name="titleText" format="string"/>    <attr name="titleTextSize" format="dimension"/>    <attr name="titleTextColor" format="color"/>    <attr name="image" format="reference"/>    <attr name="imageScaleType" >        <enum name="fillXY" value="0"/>        <enum name="center" value="1"/>    </attr>    //自定义控件的主题样式    <declare-styleable name="CustomImageView">        <attr name="titleText" />        <attr name="titleTextSize" />        <attr name="titleTextColor" />        <attr name="image" />        <attr name="imageScaleType" />    </declare-styleable></resources>

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"                       />  

color:颜色值

定义:

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

使用:

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

boolean:布尔值

定义:

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

使用:

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

dimension:尺寸值

定义:

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

使用:

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

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"  />  

integer:整型值

定义:

<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:interpolator = "@anim/动画ID"                   android:fromDegrees = "0"                  android:toDegrees = "360"                   android:pivotX = "200%"                   android:pivotY = "300%"                  android:duration = "5000"                   android:repeatMode = "restart"                   android:repeatCount = "infinite"                  />  

enum:枚举值

定义:

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

使用:

<LinearLayout                      xmlns:android = "http://schemas.android.com/apk/res/android"                      android:orientation = "vertical"                      android:layout_width = "fill_parent"                      android:layout_height = "fill_parent"                      >  </LinearLayout>  

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>           lt;/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"          />  
7 0
原创粉丝点击