Android常用控件之SeekBar的使用

本文探讨了Android SeekBar的使用,包括水平显示和垂直显示,并提出图片无法自适应进度条长度的问题。作者分享了如何通过自定义样式和重写SeekBar解决这一问题,同时介绍了使用9.png格式图片以实现大小自适应,以及如何使用Android SDK的draw9patch.bat工具制作此类图片。最后展示了修改后的效果,并感谢同事的帮助。
摘要由CSDN通过智能技术生成


SeekBar的应用非常广,比如用来显示音量条、播放进度条,有水平显示也有垂直显示,但Android只给我们提供了水平的,可以用系统默认的样式也可以用我们自定义的样式,总之进度条的用法多种多样,如果Android没有提供也能我们自己去定制,先上图


使用图片自定义水平进度条时有个缺陷,就是图片不能根据进度条的大小进行拉伸,也就是自适应进度条的长度。当然也可以通过改变进度条的宽度跟图片宽度一致,这样就不会出现上面的情况。我想让图片适应进度条的大小,但还没找到解决办法,我想通过广大网友一起想想办法如何解决这样问题,有知道的朋友可以告诉我,感激不尽!

上图显示的第一个进度条是Android定义的,我们不需要做任何更新,只需要在布局文件中添加就可以,如

<SeekBar
        android:id="@+id/seekbar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" />

然后在Activity中根据相应的ID获取对象,并添加监听器


下面看下第二个进度条的在布局文件中的定义

<SeekBar
        android:id="@+id/proSeek"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/seekbar"
        android:layout_gravity="center_vertical"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:progressDrawable="@drawable/seekbar_style"
        android:secondaryProgress="0"
        android:thumb="@drawable/thumb_selector" />

进度条样式seekbar_style.xml定义 以下是使用图片定义的

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" 
    android:opacity="transparent">

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/player_progress_bg"/>
    <item
        android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/player_progress_buffering">
    </item>
    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/player_progress_playing">
    </item>

</layer-list>


滑块thumb_selector.xml 定义

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/voice_thumb_press" 
        android:state_pressed="true"/>
    <item android:drawable="@drawable/voice_thumb_normal" 
        android:state_enabled="true" 
        android:state_focused="true" 
        android:state_window_focused="true"/>
    <ite
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值