Android SeekBar,动态显示进度且随SeekBar一起移动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android SeekBar,动态显示进度且随SeekBar一起移动相关的知识,希望对你有一定的参考价值。
参考技术A 花了点时间做,其实这个东西本没有什么,主要的问题就是在于seekBar不是顶格的,存在一个空隙,这个空隙又不知道值是多少,所以这个很难计算,后来去看了资料,paddingStart = 0dp,PaddingEnd=0dp 可以使进度条填充到整个界面,但也不大符合需求,所以设定paddingStart = 15dp,既能不改变原来seekbar的效果,也可以知道这个间隙是多少。这里就是计算具体的textview位置的地方了
textview的文本是固定宽度的,动态的太难控制了,不是这种简单的操作能够搞定的。
seekbar的宽度就随意了,注意设置下paddingStart 和 paddingEnd。
xml 如下:
好了效果实现了,这种实现方式算是比较简单了。
Seekbar 和 InsetDrawable 获取进度
【中文标题】Seekbar 和 InsetDrawable 获取进度【英文标题】:Seekbar and InsetDrawable for progress 【发布时间】:2011-04-01 13:43:33 【问题描述】:您好,我尝试自定义搜索栏。
这是我的问题:
main.xml
...
<SeekBar android:id="@+id/seekBar1"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:thumb="@drawable/seekbarthumb"
android:progressDrawable="@drawable/sb2"
android:minHeight="45dip"
android:maxHeight="45dip"
></SeekBar>
...
@drawable 中的 sb2.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/seekbarbg">
</item>
<item android:id="@android:id/progress"
android:drawable="@drawable/sb_progress">
</item>
</layer-list>
一切正常,但 sb_progress 位置错误。
所以我有 2 个解决方案。更改 sb_progress 的位置或使用 Photoshop 编辑 sb_progress 并添加透明像素来修复它。
通过尝试改变位置的好方法出了问题:
我在 sb2.xml 中添加了一些行
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/seekbarbg">
</item>
<item android:id="@android:id/progress" >
<inset
android:drawable="@drawable/sb_progress"
android:insetTop="11dip"
android:insetBottom="11dip"
android:insetLeft="11dip">
</inset>
</item>
</layer-list>
我添加了inset 元素,但结果为 suxx。位置正确,但进度不再动画。 sb_progress.png 始终是完整绘制的,不会停留在拇指上。
我需要帮助!这是一个错误,我需要添加透明像素吗?不是
InsetDrawable 是 Drawable 的子类。为什么搜索栏不再适用于 InsetDrawable。
java.lang.Object ↳ android.graphics.drawable.Drawable ↳ android.graphics.drawable.InsetDrawable
【问题讨论】:
【参考方案1】:我知道这是一个老问题,但如果有人通过搜索引擎找到了这个问题(就像我所做的那样),您需要做的就是在可绘制对象和插图中添加一个“剪辑”。
<item android:id="@android:id/progress" >
<clip>
<inset
android:insetRight="11dp"
android:insetLeft="11dp">
<shape>
<solid android:color="#343434"/>
</shape>
</inset>
</clip>
</item>
【讨论】:
以上是关于Android SeekBar,动态显示进度且随SeekBar一起移动的主要内容,如果未能解决你的问题,请参考以下文章
Android在音频播放器中刷新Seekbar进度和播放持续时间导致音频播放滞后
Android SeekBar 设置自定义thumb 图片显示异常