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"
总结:个人觉得是用代码代替了图片,修改方便

转载于:https://my.oschina.net/zaizaiangels/blog/522589

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值