Seekbar和InsetDrawable用于进度

时间:2011-04-01 13:43:34

标签: android xml seekbar

您好我尝试自定义搜索栏。

这是我的问题:

main.xml中

   ...
    <SeekBar android:id="@+id/seekBar1" 
                android:layout_width="match_parent" 
                android:layout_height="wrap_content" 
                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始终是完全绘制的,不要停留在拇指上。

我需要帮助!这是一个Bug,我需要添加透明像素吗?不是

InsetDrawable是Drawable的子类。为什么搜索栏不再适用于InsetDrawable。

java.lang.Object中    ↳android.graphics.drawable.Drawable        ↳android.graphics.drawable.InsetDrawable

1 个答案:

答案 0 :(得分:6)

我知道这是一个老问题,但是如果有人通过搜索引擎(就像我做的那样)发现这一点,那么你需要做的就是添加一个&#39;剪辑&#39;对于可绘制的以及插图。

<item android:id="@android:id/progress" >
    <clip>
    <inset
        android:insetRight="11dp"
        android:insetLeft="11dp">
        <shape>
             <solid android:color="#343434"/>
        </shape>
    </inset>
    </clip>
</item>