自定义listview高亮效果(item带立体背景效果)

本文将介绍如何根据XML代码自定义ListView项的背景样式,包括聚焦、按压状态下的不同效果,通过调整颜色、边框和圆角来实现个性化UI设计。

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

参考了http://www.uplook.cn/index.php?a=kbase&m=Index&c=show&id=6943
中的部分代码

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://www.norkoo.com">
<item android:state_pressed="true">
<shape>
<gradient android:startcolor="#ff8c00" android:endcolor="#ffffff"
android:angle="270" />
<stroke android:width="2dp" android:color="#dcdcdc" />
<corners android:radius="2dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true">
<shape>
<gradient android:startcolor="#ffc2b7" android:endcolor="#ffc2b7"
android:angle="270" />
<stroke android:width="2dp" android:color="#dcdcdc" />
<corners android:radius="2dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient android:startcolor="#ff9d77" android:endcolor="#ff9d77"
android:angle="270" />
<stroke android:width="2dp" android:color="#fad3cf" />
<corners android:radius="2dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
</item>
</selector>


下面是我自己的代码
listview_item_bg.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- focused -->
<item android:drawable="@color/white" android:state_focused="true" />
<!-- focused and pressed -->
<item android:drawable="@color/white" android:state_focused="true"
android:state_pressed="true" />
<!-- pressed -->
<item android:drawable="@color/tab_blue" android:state_pressed="true" />
<!-- default -->
<!-- <item android:drawable="@color/white" /> -->
<item>
<shape
android:shape="rectangle">
<gradient android:startColor="#ffffff" android:endColor="#EDEDED"
android:angle="-90" />
</shape>
</item>
</selector>


使用:在listview里面的item的layout中:android:background="@xml/listview_item_bg"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值