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

view的背景

2016-06-23 09:40 489 查看
01)三种状态的图片,即不可用,正常,按下状态:

<?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>


02)两种状态,即按下和正常

<?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>


03)使用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>


04)用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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android