view的背景

1. 三种状态的图片,即不可用,正常,按下状态

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" 
        android:drawable="@drawable/btn_delete_pre" />
    <item android:state_enabled="false"
        android:drawable="@drawable/btn_delete_dis" />
    <item android:state_enabled="true"
        android:drawable="@drawable/btn_delete_nor" />
</selector>

2. 两种状态,即按下和正常

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@drawable/btn_digit_press" />
    <item
        android:drawable="@drawable/btn_digit_nor" />
</selector>

若使用颜色值,则必须在color中定义,在drawable中以drawable引用:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/common_lightgreen_color_sel" android:state_pressed="true" />
    <item android:drawable="@color/common_lightgreen_color_nor"  />
</selector>

3. 使用xml文件写一个圆形图片

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <!-- 填充的颜色 -->
    <solid android:color="#41add7" />
    <!-- 设置按钮的四个角为弧形 -->
    <!-- android:radius 弧形的半径 -->
    <corners android:radius="365dip" />
</shape> 

4. 用xml文件写一个长方形带有圆角的图片

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <!-- 这里设置背景颜色 -->
    <solid android:color="#ffffff" />
    <!-- 边框的颜色 ,如与背景相同,可省略-->
    <!--<stroke
        android:width="1dp"
        android:color="#ffffff" />-->
    <!-- 设置按钮的四个角为弧形 -->
    <!-- android:radius 弧形的半径 -->
    <corners android:radius="4dip" />

    <!-- padding:view里面的文字与Button边界的间隔 -->
    <padding
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp" />
</shape>

5. 一个字体颜色可变

  首先定义一个drawable/red.xml文件,为其添加android:state_pressed属性,之后在布局中使用
android:textColor="@drawable/red"
<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android" >  
  
    <item android:state_pressed="true" android:color="#80FFFFFF"></item>
    <item android:state_pressed="false" android:color="#FFFFFFFF"></item>
  
</selector>  

6. 有左、下两处边框的xml文件

这里写图片描述

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 连框颜色值 -->
    <item>
        <shape>
            <solid android:color="#ff0000" />
        </shape>
    </item>
    <!-- 主体背景颜色值 -->
    <item
        android:bottom="3dp"
        android:left="3dp">
        <shape>
            <solid android:color="#fefefe" />

            <padding
                android:bottom="10dp"
                android:left="10dp"
                android:right="10dp"
                android:top="10dp" />
        </shape>
    </item>
</layer-list>  

7. 图片的选中状态,使用android:state_selected=“true”

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/icon_click" android:state_selected="true"/>
    <item android:drawable="@drawable/icon_normal"/>
</selector>

8. drawable画一根线

这里写图片描述
如上图,位一根渐变的1px的分割线,相应的drawable如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:centerColor="#ff00ff00"
        android:endColor="#ff0000ff"
        android:startColor="#ffff0000"
        android:type="linear" />
    <size android:height="1px"/>

</shape>

9. 字体颜色的选择状态

?xml version="1.0" encoding="utf-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
<!-- 没有焦点时字体颜色 --> 
<item
	android:state_selected="false"
	android:color="#FFFFFF"/>
<!--选中时的字体颜色  -->  
<item
	android:state_selected="true"
	android:color="#3197FF"/>
<!-- 非触摸模式下获得焦点并单击时的字体颜色 -->  
<item
	android:state_focused="true"
	android:state_pressed="true"
	android:color="#3197FF"/>
</selector>

10. shape写圆形背景

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    android:useLevel="false">
    <solid android:color="@color/common_red_color" />
    <padding
        android:bottom="0dp"
        android:left="0dp"
        android:right="0dp"
        android:top="0dp" />
    <solid android:color="@color/common_red_color" />
    <!--<stroke
        android:width="1dp"
        android:color="@android:color/white" />-->
    <size
        android:width="16dp"
        android:height="16dp" />
</shape>

使用时,用wrapcontent来写宽高,如下的实例:

<TextView
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:layout_gravity="left"
	android:layout_marginLeft="@dimen/common_padding_width"
	android:layout_marginTop="10dp"
	android:background="@drawable/little_circle"
	android:gravity="center"
	android:textColor="@android:color/white"
	android:textSize="12sp" />

11. 绘制只有一个圆角的图片背景

<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
    <solid android:color="@color/color_default" />  
    <corners  
        android:topLeftRadius="0dp"  
        android:topRightRadius="0dp"  
        android:bottomLeftRadius="0dp"  
        android:bottomRightRadius="8dp" />  
  
</shape>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值