您的位置:首页 > 移动开发 > Android开发

Android利用drawable文件夹自定义控件背景、样式

2014-12-06 15:34 489 查看
一.自定义控件的选中效果
在drawable文件夹下新建selector类型的xml文件(右键drawable,选择新建android xml file),文件名任意,内容如:
<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@drawable/whole_show_c" />
    <item android:state_pressed="true" android:drawable="@drawable/whole_show_c" />
    <item android:state_selected="true" android:drawable="@drawable/whole_show_c" />
    <item android:drawable="@drawable/whole_show" />
</selector>
/*state_focused表示是否是非触摸状态,true表示是非触摸状态。其中android:drawable可以引用drawable文件夹下其它资源文件,比如shape资源,用来实现控件常规、按下、选中等样式*。
使用方法:在布局文件中,控件的背景属性中引用这些资源,以下类同*/
 
二.自定义控件的外观
新建shape类型的xml文件,如:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <stroke
        android:width="1px"
        android:color="@color/color_black" />
    <padding
        android:bottom="3dp"
        android:left="3dp"
        android:right="3dp"
        android:top="3dp" />
    <solid
        android:color="@color/color_white"
        />
   <corners
        android:bottomLeftRadius="0dp"
        android:bottomRightRadius="0dp"
        android:radius="1dp"
        android:topLeftRadius="@dimen/indicator_corner_radius"
        android:topRightRadius="@dimen/indicator_corner_radius" />
</shape>
/*
stroke表示描边
padding内边距
solid表示实体,即控件的整体区域
corners表示圆角
*/
三.多样式叠加
新建layer-list类型的xml文件,如:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape>
            <solid android:color="@color/stroke" />
            <corners android:radius="5dip" />
            <stroke
                android:width="1dp"
                android:color="@color/stroke" />
        </shape>
    </item>
    <item>
        <scale
            android:scaleGravity="center"
            android:scaleHeight="5dp"
            android:scaleWidth="5dp" />
    </item>
</layer-list>
 
综合示例:
<?xml version="1.0" encoding="UTF-8"?>  
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" >
 
    <item android:id="@android:id/background">  
        <shape>  
            <corners android:radius="5dip" />  
            <gradient android:startColor="#ff707070" 
                android:centerColor="#ff707070" android:endColor="#ff707070" 
                android:centerY="1" android:angle="270" />     
        </shape>  
    </item>  
     <item android:id="@android:id/secondaryProgress">
         <clip>
             <shape>
                 <corners android:radius="5dip" />
                 <gradient
                         android:startColor="#ffaaa9a7"
                         android:centerColor="#ffaaa9a7"
                         android:centerY="1"
                         android:endColor="#ffaaa9a7"
                         android:angle="270"
                 />
             </shape>
         </clip>
     </item>
    
     <item android:id="@android:id/progress">  
        <clip>  
            <shape>  
                <corners android:radius="5dip" />  
                <gradient android:startColor="#ffA90101" 
                    android:centerColor="#ffA90101" android:endColor="#ffA90101" 
                    android:centerY="1" android:angle="270" />     
            </shape>  
        </clip>  
    </item>  
</layer-list>   

本文出自 “Focus_000” 博客,请务必保留此出处http://120806872.blog.51cto.com/8289253/1417169
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: