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>
<?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