在Android开发中,为了界面的友好,通常需要将一些TextView和Button等控件在空闲和点击等不同状态下显示不同的用户界面,大多数时候都会使用到shape进行控件的样式处理,并且配合selector控件处理点击状态的样式显示.
一.首先是为TextView等控件添加背景
如图,需要在xml文件的TextView控件设置背景.
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" ><!-- 控件形状设置 -->
<!-- 填充的颜色-绿色 -->
<solid android:color="#0f0" />
<!-- 圆角半径 -->
<corners android:radius="6dp" />
<!-- 内容的间隔 -->
<padding
android:bottom="32dp"
android:left="4dp"
android:right="16dp"
android:top="8dp" />
<!-- 边框设置 -->
<stroke
android:width="1dp"
android:color="#000" />
<!-- 自定义控件大小 -->
<!-- <size
android:width=""
android:height=""/> -->
<!-- 背景渐变色 -->
<!-- <gradient
android:startColor=""
android:centerColor=""
android:endColor=""/> -->
</shape>
大家可以根据自己的需求进行修改配置.
二.设置点击效果,需要和selector一起使用
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按钮按下时的效果 -->
<item android:state_pressed="true"><shape android:shape="rectangle">
<corners android:radius="4dp" />
<solid android:color="#f00" />
<stroke android:width="2dp" android:color="#00f" />
</shape>
</item>
<!-- 正常状态 -->
<item><shape android:shape="rectangle">
<solid android:color="#0f0" />
<corners android:radius="6dp" />
<padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" />
<stroke android:width="1dp" android:color="#000" />
</shape>
</item>
</selector>
正常状态
点击状态效果
上面的两个例子只是一些简单的背景效果,大家可以通过试试其他的属性进行更多的配置,使自己的控件更加炫丽.
三.圆的制作
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"
android:useLevel="false">
<solid android:color="#ff0"/>
<stroke android:width="2dp"
android:color="#f00"/>
<size android:width="50dp"
android:height="50dp"/>
</shape>
另外TextView的文字也可以设置随点击事件进行颜色的改变.