自定义SeekBar中progress无法覆盖background区域 解决方案

来源:互联网 发布:wind软件使用 编辑:程序博客网 时间:2024/05/20 14:43
项目需求,自定义SeekBar实现拖动选择所需数值:
展示效果如图:

由于项目要求seekbar的背景backgroud和进度条progress都是自定义的图片,图片在适配和拉伸的过程中会存在变形,更重要的是在适配的时候会出现问题,项目需求在不同的设备上7寸  10寸 Pad 和5寸手机上进行适配,所以选择使用了.9.png的图片,这样就可以很好的解决了图片拉伸变形的问题。但是,在调试过程中发现SeekBar中progress无法覆盖background区域,要嘛就是只显示淡黄色部分,要嘛就只显示灰色部分,搞的很郁闷,查找问题原因后,发现原来是因为使用了.9.png格式图片的原因,之后更改进度条样式:
<clip>
            <nine-patch android:src="@drawable/seekbar_progress_bg_new" />
        </clip>
具体见如下代码:




<SeekBar                            android:id="@+id/seekbar_aim_first_yaofang"                            style="@style/aim_seekbar_style"                            android:max="300" />

<style name="aim_seekbar_style">        <item name="android:layout_width">@dimen/aim_seekbar_width</item>        <item name="android:layout_height">30dp</item>        <item name="android:maxHeight">25dp</item>        <item name="android:minHeight">25dp</item>        <item name="android:paddingLeft">8dip</item>        <item name="android:paddingRight">8dip</item>        <item name="android:progress">0</item>        <item name="android:progressDrawable">@drawable/seekbar_style_new</item>        <item name="android:thumb">@drawable/seekbar_thumb</item>    </style>


自定义的Drawable     seebar_style_new


<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android" >    <!-- 滑竿背景 -->    <item        android:id="@android:id/background"        android:drawable="@drawable/seekbar_bg_new">    </item>    <!-- 第二进度条式样 -->    <item        android:id="@android:id/secondaryProgress"        android:drawable="@drawable/seekbar_bg_new">    </item>    <!-- 进度条式样 -->    <item android:id="@android:id/progress">        <clip>            <nine-patch android:src="@drawable/seekbar_progress_bg_new" />        </clip>    </item></layer-list>


原创粉丝点击