Android 使用ShapeDrawable制作圆角矩形

本文介绍如何利用ShapeDrawable为Android应用中的视图元素创建点击反馈效果。通过定义不同状态下的背景样式,如正常状态和按下状态的颜色变化,可以增强用户体验。此外,还介绍了如何创建选择器资源文件以实现这一效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:在给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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值