情景再现:UI按照720P切图,缩放成.9图片缩放后边角会出现虚化~特此要用代码解决~
1.Selector
drawable的item中可以有以下属性:
- android:drawable="@drawable/drawable_resource"
- android:state_pressed=["true"|"false"]点击
- android:state_focused=["true"|"false"]获得焦点
- android:state_selected=["true"|"false"]选中
- android:state_active=["true"|"false"]
- android:state_checkable=["true"|"false"]是否可选择
- android:state_checked=["true"|"false"]选择
- android:state_enabled=["true"|"false"]是否响应事件
- android:state_window_focused=["true"|"false"]
2.Shape
solid:实心,就是填充
|
android:color =
"#000000"
指定填充的颜色
|
gradient:渐变
android:startColor起始颜色
- android:endColor结束颜色
- android:angle渐变角度,必须为45的整数倍。
-
- 渐变模式:
- android:type="linear"默认为线性渐变模式
- android:type="radial"径向渐变,需要指定半径
- android:gradientRadius="50"半径为50
stroke:描边
android:width="2dp"描边的宽度
- android:color描边的颜色
-
- 还可以把描边弄成虚线的形式,设置方式为:
- android:dashWidth="5dp"表示'-'这样一个横线的宽度
- android:dashGap="3dp"表示'-'之间隔开的距离
corners:圆角
android:radius角的弧度,值越大角越圆
- 还可以把四个角设定成不同的角度:
- <corners
- android:topRightRadius="20dp"右上角
- android:bottomLeftRadius="20dp"右下角
- android:topLeftRadius="1dp"左上角
- android:bottomRightRadius="0dp"左下角
- />
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个有点郁闷,不过不影响使用,记得别搞错了就行。
padding:间隔
3.用法:
第一种是在listview中配置:
|
android:listSelector =
"@drawable/list_item_bg"
|
第二种是在listview的item中添加属性:
|
android:background =
"@drawable/list_item_bg"
|
第三种是在Java代码中使用:
|
Drawable drawable = getResources().getDrawable(R.drawable.list_item_bg);
listView.setSelector(drawable);
|
4.例:list_item_bg.xml
<?xmlversion="1.0"encoding="utf-8"?>
- <selectorxmlns:android="http://schemas.android.com/apk/res/android">
- <itemandroid:state_pressed="true">
- <shape>
-
- <gradient
- android:startColor="#ff8c00"
- android:endColor="#FFFFFF"
- android:type="radial"
- android:gradientRadius="50"/>
- <!--描边-->
- <stroke
- android:width="2dp"
- android:color="#dcdcdc"
- android:dashWidth="5dp"
- android:dashGap="3dp"/>
- <!--圆角-->
- android:radius="2dp"/>
- <padding
- android:left="10dp"
- android:top="10dp"
- android:right="10dp"
- android:bottom="10dp"/>
- </shape>
- </item>
- <itemandroid:state_focused="true">
- <shape>
- android:startColor="#ffc2b7"
- android:endColor="#ffc2b7"
- android:angle="270"/>
- android:color="#dcdcdc"/>
- <corners
- android:radius="2dp"/>
- <padding
- android:left="10dp"
- android:top="10dp"
- android:right="10dp"
- android:bottom="10dp"/>
- </shape>
- </item>
- <item>
- <solidandroid:color="#ff9d77"/>
- android:color="#fad3cf"/>
- android:topRightRadius="5dp"
- android:bottomLeftRadius="5dp"
- android:topLeftRadius="0dp"
- android:bottomRightRadius="0dp"/>
- </selector>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|