Android 使用ShapeDrawable制作圆角矩形

需求:在给view添加点击事件时,被点击的时候没什么效果,这时我们便可以用ShapeDrawable制作一个效果出来了

步骤一在res目录下的drawable目录

创建xml文件

正常状态的情况下

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--设置圆角矩形的幅度-->
<corners android:radius="5dip" />
<!--
渐变
<gradient android:startColor="#ff0000" android:endColor="#00ffff"/>
-->
<!-- 固定色:当设置了固定颜色之后,渐变颜色也就失效了 -->
<solid android:color="#ffffff" />

<!-- <stroke
android:dashWidth="3dip"
android:width="2dip"
android:color="#000000"
android:dashGap="15dip" /> -->

</shape>
shap是指什么图形,radius是边角弧度,gradient是渐变色,solid是固定色
被点击的时候
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<corners android:radius="5dip" />
<!--
渐变
<gradient android:startColor="#ff0000" android:endColor="#00ffff"/>
-->


<!-- 固定色 -->
<solid android:color="#44000000" />

<!-- <stroke
android:dashWidth="3dip"
android:width="2dip"
android:color="#000000"
android:dashGap="15dip" /> -->

</shape>
在创建一个选择器
<?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/gradient_box_pressed" /> <!-- pressed -->

<item android:state_focused="true"
android:drawable="@drawable/gradient_box_pressed" /> <!-- focused -->


<item android:drawable="@drawable/gradient_box" /> <!-- default -->
</selector>
在TextView 以如下形式引用
android:background="@drawable/shape_selector"
总结:个人觉得是用代码代替了图片,修改方便

你可能感兴趣的:(Android 使用ShapeDrawable制作圆角矩形)