thumb 垂直seekbar 居中_安卓SeekBar自定义(适配5.0无法显示的问题)

项目需求定义seekbar,本来以为很简单,但是踩了挺久坑,总结如下:

对于安卓5.1以上的设备,直接定义android:progressDrawable、android:thumb、android:splitTrack即可达到想要的效果。style如下:

false

@drawable/seekbar_background

@mipmap/seekbar_thumb

thumb可使用图片(用于带阴影的滑块)然后配合splitTrack达到滑块透明效果,不会遮挡背景。

对于progressDrawable也只需按常规drawable去写即可,没有什么特别的。

例子:seekbar_background.xml如下:<?xml version="1.0" encoding="utf-8"?>

但是对于5.1需要做不同处理。【1,无法显示进度条】因为按以上的方式无法显示,主要原因是5.1的android:progressDrawable需要三个层级区分。

例子:seekbar_background_v21.xml如下:<?xml version="1.0" encoding="utf-8"?>

然后可以看到背景色了,此外就是滑块的定义,实际上没什么特别的,但如果seekbar限定了高度,【2,滑块无法居中】则需要解决居中问题,解决办法是将高度定义为wrap_content,【3,背景和进度条高度太高】然后会出现背景和进度条太大的问题,这时候使用android:minHeight和android:maxHeight去限制进度条的高度。

在style-v21中定义不同的drawable:

false

@drawable/seekbar_background_v21

@mipmap/seekbar_thumb

wrap_content

4dp

4dp

【4,无法拉满进度条】此外关于滑块无法拉满进度条的问题,主要是下面这个属性的问题

0dp

去除后可正常拉满。

【5,滑块拉满被父view裁剪】关于滑块拉满后被父view裁剪的问题,主要是在父view中加上这两个属性:android:clipChildren="false"android:clipToPadding="false"

以上,seekbar应该没什么问题了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值