Android中的selector&&shape

StateListDrawable对应的XML根元素是<selector>,它可以根据View的状态的不同对应展示不同的Drawable。比如点击时背景是红色,不点击时是白色,所以StateListDrawable用于设置点击事件的背景。

一、语法
语法
二、子节点
子节点要关心只有 selector里面的属性和item里面的状态。

android:constantSize
StateListDrawable的大小是否随着View的状态的改变而改变。true固定大小,不随之改变,false为随着改变拉伸自身大小。
默认为false。

android:dither
是否开启抖动。

.android:variablePadding
默认false,建议false
是否随着View的状态的改变而改变padding,如果为true,padding的状态会随着改变,如果为false,那么就采用item内部的Drawable自身设定的padding的值。

item状态及其含义
这里写图片描述

ShapeDrawable 一种创建的Drawable,可以理解为通过颜色来构造的图形,它既可以是纯色的图形,也可以是具有渐变效果的图形。
ShapeDrawable的xml的根元素是 shape
一、语法
语法

二、子节点
corners(角度)、gradient(渐变)、padding(距离)、size(大小)、solid(纯色填充)、stroke(描边)

根元素:shape
android:shape
表示图形的形状,有四种选项
  rectabgle 矩形
  oval 椭圆
  line 横线
  ring 圆环

其中, line 和 ring 一定需要通过 标签来指定 线的宽和和颜色信息 等。
ring有5个特殊的属性值
ring特有特性

corners 角度 ( 只适用于 shape )
表示shape图形四个交的角度,即四个角的圆角程度。单位是px,他有5个属性
android:radius 为四个角同时设定相同的角度,优先级低,会被下面几个覆盖
android:topLeftRadius 左上角的角度
android:topRightRadius 右上角的角度
android:bottomLeftRadius 左下角的角度
android:bottomRightRadius 右下角的角度
注意:每个圆角半径值都必须大于1,否侧就没有圆角。

solid 纯色填充
表示纯色填充,利用 android:color 就可以指定shape的颜色。

gradient 渐变效果 (与solid互斥,纯色或者渐变只能要一个)
android:angle 渐变的角度,默认是0,其值必须是45的整数倍。
0表示从左边到右,90表示从上到下。具体效果随着角度的调整而产生变化,角度影响渐变方向。
android:centerX 渐变中心的横坐标点
android:centerY 渐变中心的纵坐标点
android:startColor 渐变色的起始色
android:centerColor 渐变色的中间色
android:endColor 渐变色的结束色
android:type 渐变的类型,分3种,linear(线性渐变),radial(径向渐变),sweep(扫描线渐变),默认值是 线性渐变 。
android:gradientRadius 渐变的半径(仅当 android:type 为radial时有效)
android:useLevel 一般为false,当Drawable作为StateListDrawable时有效。

stroke 描边
描边

注:如果 android:dashWidth 和 android:dashGap 两者有任意一个为0,那么虚线效果就无法显示。

padding
这个没什么好讲的,就是padding,分上下左右
.
.
size shape大小
android:width 指定shape宽
android:height 指定shape高

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值