前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android自定义View中attrs.xml的实例详解

Android自定义View中attrs.xml的实例详解

作者头像
砸漏
发布2020-10-22 11:12:43
1K0
发布2020-10-22 11:12:43
举报
文章被收录于专栏:恩蓝脚本恩蓝脚本

Android自定义View中attrs.xml的实例详解

我们在自定义View的时候通常需要先完成attrs.xml文件

在values中定义一个attrs.xml 然后添加相关属性

这一篇先详细介绍一下attrs.xml的属性。

代码语言:javascript
复制
<?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。

定义:

代码语言:javascript
复制
<declare-styleable name = "名称"  
          <attr name = "background" format = "reference" /  
</declare-styleable  

使用:

代码语言:javascript
复制
<ImageView 
           android:layout_width = "42dip" 
           android:layout_height = "42dip" 
           android:background = "@drawable/图片ID" 
           /  

color:颜色值

定义:

代码语言:javascript
复制
<declare-styleable name = "名称"  
          <attr name = "textColor" format = "color" /  
      </declare-styleable  

使用:

代码语言:javascript
复制
<TextView 
          android:layout_width = "42dip" 
          android:layout_height = "42dip" 
          android:textColor = "#00FF00" 
          /  

boolean:布尔值

定义:

代码语言:javascript
复制
<declare-styleable name = "名称"  
        <attr name = "focusable" format = "boolean" /  
</declare-styleable  

使用:

代码语言:javascript
复制
<Button 
          android:layout_width = "42dip" 
          android:layout_height = "42dip" 
          android:focusable = "true"/  

dimension:尺寸值

定义:

代码语言:javascript
复制
<declare-styleable name = "名称"  
          <attr name = "layout_width" format = "dimension" /  
</declare-styleable  

使用:

代码语言:javascript
复制
<Button 
          android:layout_width = "42dip" 
          android:layout_height = "42dip" 
         /  

float:浮点值

定义:

代码语言:javascript
复制
<declare-styleable name = "AlphaAnimation"  
          <attr name = "fromAlpha" format = "float" /  
          <attr name = "toAlpha" format = "float" /  
</declare-styleable  

使用:

代码语言:javascript
复制
<alpha 
    android:fromAlpha = "1.0" 
    android:toAlpha = "0.7" 
/  

integer:整型值

定义:

代码语言:javascript
复制
<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  

使用:

代码语言:javascript
复制
<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:枚举值

定义:

代码语言:javascript
复制
<declare-styleable name="名称"  
          <attr name="orientation"  
             <enum name="horizontal" value="0" /  
             <enum name="vertical" value="1" /  
          </attr        
</declare-styleable  

使用:

代码语言:javascript
复制
<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:位或运算

代码语言:javascript
复制
<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  

使用:

代码语言:javascript
复制
<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  

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

定义:

代码语言:javascript
复制
<declare-styleable name = "名称"  
   <attr name = "background" format = "reference|color" /  
</declare-styleable  

使用:

代码语言:javascript
复制
<ImageView 
    android:layout_width = "42dip" 
    android:layout_height = "42dip" 
    android:background = "@drawable/图片ID|#00FF00" 
    /  

以上就是关于Android 自定义 View 对attrs.xml的详细介绍,如有疑问请留言或者到本站社区交流,共同 进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档