一起Talk Android吧(第四百五十八回:SeekBar补充用法一)
Posted talk_8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起Talk Android吧(第四百五十八回:SeekBar补充用法一)相关的知识,希望对你有一定的参考价值。
文章目录
各位看官们大家好,上一回中咱们说的例子是"修改View的布局参数",这一回中咱们说的例子是"SeekBar补充用法"。闲话休提,言归正转,让我们一起Talk android吧!
我们在之前的博客中介绍过SeekBar的用法,如果有看官忘记了可以点击这里查看,本章回中我们将对之前的内容做一些补充,可以看作是在基础用法之上的扩展。扩展的内容包含以下几个方法:
- 修改进度条的背景
- 修改进度条的头部
- 修改进度的步进值
接下来我们分介绍这些内容。
修改进度条背景
进度条的背景就是拖动SeekBar时显示进度的背景和未完成进度的背景,使用Holo主题是默认的进度背景是绿色,未完成的背景为灰色。我们可以通过SeekBar的相关属性来修改这些背景颜色。下面是一个示例代码,请大家参考:
<!-- //其它属性省略不写 -->
<SeekBar
android:thumbTint="#FF8800"
android:progressBackgroundTint="@color/color_gray"
android:progressTint="@color/white"/>
上面的代码中progressTint
属性用来控制进度的颜色,progressBackgroundTint
属性用来控制未完成进度的颜色,thumbTint
属性用来控制头部的颜色。
我的经验是头部的颜色最好的进度的颜色保持一致,例如官方使用的进度颜色和头部颜色都是绿色。有看官问什么是头部?看官莫急,我们稍后就会介绍。
修改进度条的头部
进度条的头部指的是显示光标的地方,或者理解为进度条最前方的小圆点。如果使用了默认的Holo主题,那么头部是一个绿色的小圆点,点击变会变大。如果项目中觉得它不好看或者不符合项目需求,可以使用SeekBar
的thumb
属性来指定它的头部,下面是一个示例代码:
<!-- //其它属性省略不写 -->
<Seekbar
android:thumb="@drawable/ic_face"/>
在上面的代码中,我们使用一张笑脸图片替换了默认的头部,运行程序时会在SeekBar的头部显示一个笑脸。当然也可以向默认的头部一样做一个动态的头部,正常情况下比较小,点击时变大。这就需要自定义drawable资源了,下面是官方使用的drawable资源,我们可以参考:
<style name="Widget.Holo.SeekBar">
<item name="indeterminateOnly">false</item>
<item name="progressDrawable">@drawable/scrubber_progress_horizontal_holo_dark</item>
<item name="indeterminateDrawable">@drawable/scrubber_progress_horizontal_holo_dark</item>
<item name="minHeight">13dip</item>
<item name="maxHeight">13dip</item>
<item name="thumb">@drawable/scrubber_control_selector_holo</item>
<item name="thumbOffset">16dip</item>
<item name="focusable">true</item>
<item name="paddingStart">16dip</item>
<item name="paddingEnd">16dip</item>
<item name="mirrorForRtl">true</item>
</style>
上面的SeekBar使用的style位于:
/frameworks/base/core/res/res/values/styles_holo.xml
文件中,从代码中可以看作thumb属性使用了其它的drawable文件,该文件的路径为
/frameworks/base/core/res/res/drawable/seek_thumb.xml
文件中的内容如下:
<!-- This is the thumb on the seek bar. -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_pressed" />
<item android:state_focused="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_selected" />
<item android:state_selected="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_selected" />
<item android:drawable="@drawable/seek_thumb_normal" />
</selector>
上面的代码中使用的drawable资源位于同目录下的drawable-xdpi
目录下,它们都是图片,这里就列出了,代码中使用selector
,它给不同的状态配置了不同的图片,这样就会让SeekBar的头部在不同状态下使用不同的图片,进而呈现不同的效果。我们可以参考官方的代码自定义一个漂亮的头部。
看官们,关于"SeekBar补充用法"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
以上是关于一起Talk Android吧(第四百五十八回:SeekBar补充用法一)的主要内容,如果未能解决你的问题,请参考以下文章
一起Talk Android吧(第四百八十八回:ObjectAnimator)
一起Talk Android吧(第四百四十八回:UI控件之Switch)