Android控件SeekBar值得注意的属性设置

1、设置thumb透明展示进度线效果
情景描述:UI给了一张带有阴影效果的滑块,然后我们设置android:thumb=“@mipmap/xxx"后效果如下
在这里插入图片描述
滑块两边有一块空白区域,这是因为系统没有绘制滑块后方的线条,即滑块和线处于同一层次,而我们想要的效果则是滑块覆盖在线条上且透明。因此,我们只需要设置以下代码:
android:splitTrack=“false” //默认为true 效果如下
在这里插入图片描述
2.padingStart与paddingEnd
seekbar控件自带内间距,我们常常能看见,设置的进度条线长度没有控件实际宽度宽,这就是因为自带内间距的原因,系统默认内间距的原因是用来完全显示出thumb,所以我们只需要按照自己需求去设置一下开始与结束的内间距即可。
在这里插入图片描述
3.thumbOffset 滑块偏移量
还是以刚刚的例子,一张带有透明区域的滑块图,如果设置
android:thumbOffset=“0dp” // 那么效果如下
在这里插入图片描述
即:为0时,thumb的最左侧与进度线的最左侧对齐;
注:当这里偏移量为正值时,值越大越往左偏,值为负数时,越小越往右偏移
例:android:thumbOffset=”-20dp"
在这里插入图片描述
4. 自定义进度条
一般来讲,seekbar的进度条默认颜色与进度颜色都会根据应用主题颜色进行定制化,我们通常会自定义一个xml来绘制出UI设计的效果。xml代码如下:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <solid android:color="#BCFFF7" />
            <corners android:radius="2dp" />
        </shape>
    </item>
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <solid android:color="#BCFFF7" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <scale android:scaleWidth="100%">
            <shape>
                <gradient android:startColor="#FFF"
                    android:endColor="#FFB000"/>
                <corners android:radius="2dp" />
            </shape>
        </scale>
    </item>
</layer-list>

上面需要注意的有几点

a. item的id

几个item的id,这几个id是Android的seekbar解析的默认id,需要一一对应,每个item中可以自定义shape,例如我这里写的为:默认无进度的颜色为BCFFF7,因为我不需要有缓存等所以第二颜色和背景色相同,然后是进度颜色是一个由白色到FFB000渐变的shape drawable。

b. <scale>与<clip>标签

这两个标签在<layer-list>中进行使用,<scale>表示的含义是将内部的内容进行放大扩充,<clip>表示将内容进行裁剪显示
这里使用这两个标签我通过举例说明:
比如上面代码块里我在<item android:id=“@android:id/progress”>使用的<scale android:scaleWidth=“100%”> 就表示我的进度条颜色要完整的显示我所使用的渐变。比如我当前进度为50%,那么我的渐变就是从0%到50%的渐变。如果此时我把<scale>标签改为<clip>那么显示效果就是0%到100%的渐变裁剪出0到50%的内容。如下图
scale标签
clip标签
clip标签更适合用于一张完整的进度图,根据进度慢慢显示完整张图

// 欢迎在评论中添加更多属性,持续更新

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值