• android自定义View_4——自定义属性的格式选择


    • reference - if it references another resource id (e.g, "@color/my_color", "@layout/my_layout")
    • color
    • boolean
    • dimension
    • float
    • integer
    • string
    • fraction
    • enum - normally implicitly defined
    • flag - normally implicitly defined

    一:reference:引用资源ID,如图片,风格引用,String引用。

            <declare-styleable name = "名称">
    
                       <attr name = "background" format = "reference" />
    
                </declare-styleable>
            <ImageView
                        android:layout_width = "42dip"
                        android:layout_height = "42dip"
                        android:background = "@drawable/图片ID"/>

    二:color:颜色值,如#00000000透明色。

                <declare-styleable name = "名称">
    
                       <attr name = "textColor" format = "color" />
    
                </declare-styleable>     
    
               <TextView
                        android:layout_width = "42dip"
                        android:layout_height = "42dip"
                        android:textColor = "#00FF00"/>

    三:boolean:布尔值,true,false

                <declare-styleable name = "名称">
    
                       <attr name = "focusable" format = "boolean" />
    
                </declare-styleable>       
    
                <Button
                       android:layout_width = "42dip"
                       android:layout_height = "42dip"
                       android:focusable = "true"/>    

    四:dimension:尺寸值。直接写数值:48dip,48dp,48sp,48xp

                <declare-styleable name = "名称">
    
                       <attr name = "layout_width" format = "dimension" />
    
                </declare-styleable>
    
                <Button
                       android:layout_width = "42dip"
                       android:layout_height = "42dip"/>

    五:float:浮点值,比如透明度的设定0.7f。

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

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

    六: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:pivotX = "50%"  
                      android:pivotY = "50%"  
                      android:framesCount = "12"  
                      android:frameDuration = "100"/>

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

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

    十:flag:位或运算,用的比较少,比如控制软键盘状态的时候用过。stateUnspecified | stateUnchanged|stateHidden

            <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"/>
  • 相关阅读:
    java接入钉钉机器人(带源码)
    使用java做一个能赚钱的微信群聊机器人(2020年基于PC端协议最新可用版)
    侠说java8--Stream流操作学习笔记,都在这里了
    Elasticsearch调优篇-慢查询分析笔记
    网络探测和抓包工具 wireshark
    window10远程ubuntu18.04
    springdataJPA mysql myisam innodb
    命令集
    java tmpdir 启动 kafka 命令行
    java jar 启动命令
  • 原文地址:https://www.cnblogs.com/qinghuaideren/p/3495906.html
Copyright © 2020-2023  润新知