seekbar拇指中心不在起点

时间:2013-09-25 03:25:38

标签: android seekbar

enter image description here

作为我的pic,搜索栏进度= 0,但搜索栏拇指中心不在起点。我的代码:

   <SeekBar  android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:progressDrawable="@drawable/seekbar_progress"
                 android:thumb="@drawable/seekbarthumb"
                 android:minHeight="10dip"
                 android:maxHeight="10dip"
                 android:thumbOffset="0px"
                 android:max="100"
                 android:id="@+id/bright_seekbar"
                 android:layout_marginLeft="60dip"/>

seekbar_progress

 <?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@android:id/background"> 
    <shape> 
        <corners android:radius="5dip" /> 
        <gradient 
                android:startColor="#ff9d9e9d" 
                android:centerColor="#ff5a5d5a" 
                android:centerY="0.75" 
                android:endColor="#ff747674" 
                android:angle="270" 
        /> 
    </shape> 
</item> 
<item android:id="@android:id/secondaryProgress"> 
    <clip> 
        <shape> 
            <corners android:radius="5dip" /> 
            <gradient 
                    android:startColor="#80ffd300" 
                    android:centerColor="#80ffb600" 
                    android:centerY="0.75" 
                    android:endColor="#a0ffcb00" 
                    android:angle="270" 
            /> 
        </shape> 
    </clip> 
</item> 
<item android:id="@android:id/progress"> 
    <clip> 
        <shape> 
            <corners android:radius="5dip" /> 
            <gradient 
                    android:startColor="#FFD700" 
                    android:centerColor="#FFB90F" 
                    android:centerY="0.75" 
                    android:endColor="#FFA500" 
                    android:angle="270" 
            /> 
        </shape> 
    </clip> 
 </item> 


</layer-list>

seekbarthumb.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" 
      android:drawable="@drawable/pressed_button__volume" />
<item android:state_focused="true" 
      android:drawable="@drawable/pressed_button__volume" />
<item
     android:drawable="@drawable/default_button__volume" />     
</selector>

default_button__volume是图像

6 个答案:

答案 0 :(得分:9)

终于找到了答案,这里的情况是android:thumbOffset NOT 一个拇指放置器的设置器以及进度条,但是,它&# 39; 拇指长度 开始它的中心点,以便seekbar可以在拇指的起点调整拇指的中心点。因此,如果我们的拇指图像的宽度50,则thumbOffset必须为25(50/2),以便seekbar 1}}将调整拇指的像素25 处的零值,这将使拇指看起来正好在中间。 感谢that man让我知道这一点。

答案 1 :(得分:3)

你的拇指图像需要在中心(水平)有黄点;向左或向右添加透明像素以使其成为可能。然后,将android:thumbOffset更改为拇指图像大小的一半。例如,如果您的图片宽度 10dp ,请将android:thumbOffset设置为 5dp

答案 2 :(得分:1)

对我来说,解决方法是添加适合您的布局的android:thumbOffset值,而不是将其设置为拇指图标宽度的一半。如果将android:thumbOffset设置为+ ve值(例如10dp),则拇指向左侧移动,此值为-ve(例如-10dp),而拇指移向右侧即可。

答案 3 :(得分:0)

尝试将搜索栏中的thumbOffset设为负值(如-3px)。

答案 4 :(得分:0)

添加:

android:progress="0"

表示xml文件中的seekbar

<{1>}活动文件中的

Java

这可以解决您的问题。

答案 5 :(得分:0)

将搜寻栏的thumbOffset设置为等于拇指宽度的两倍。如果您的拇指宽度为8dp,则将android:thumbOffset设置为等于16dp。 在我的情况下有效。