让Seekbar拇指更容易抓住

时间:2017-05-16 13:07:55

标签: android touch seekbar

所以我有一个SeekBar但是那个小圆圈拇指很难抓住。有没有办法让hitbox变大?我不一定关心图形本身看起来有什么不同 - 我只是希望它是可以抓取的。

3 个答案:

答案 0 :(得分:1)

您可以通过更改Thumb的大小来自定义Andrew回答的搜索栏。  创建layer-drawable,其形状为占位符thumb_image.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <shape>
        <size
            android:height="40dp"
            android:width="40dp" />

        <solid android:color="@android:color/transparent" />
    </shape>
</item>
<item android:drawable="@drawable/scrubber_control_normal_holo"/>
</layer-list>

该示例显示了以下结果。

<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:thumb="@drawable/thumb_image" />

Thumb自定义的另一个好例子。

答案 1 :(得分:0)

查看这个很酷的库,了解Seekbar DiscreteSeekBar

并且可以通过以下

添加而没有太多复杂性
<org.adw.library.widgets.discreteseekbar.DiscreteSeekBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:dsb_min="2"
        app:dsb_max="15"
/>

其中还包含以下属性。

dsb_progressColor: color/colorStateList for the progress bar and thumb drawable
dsb_trackColor: color/colorStateList for the track drawable
dsb_indicatorTextAppearance: TextAppearance for the bubble indicator
dsb_indicatorColor: color/colorStateList for the bubble shaped drawable
dsb_indicatorElevation: related to android:elevation. Will only be used on API level 21+
dsb_rippleColor: color/colorStateList for the ripple drawable seen when pressing the thumb. (Yes, it does a kind of "ripple" on API levels lower than 21 and a real RippleDrawable for 21+.
dsb_trackHeight: dimension for the height of the track drawable.
dsb_scrubberHeight: dimension for the height of the scrubber (selected area) drawable.
dsb_thumbSize: dimension for the size of the thumb drawable.
dsb_indicatorSeparation: dimension for the vertical distance from the thumb to the indicator.

库中的其他SeekBar组件是these

答案 2 :(得分:0)

您想要一个插入的可绘制资源。对于问题“ShapeDrawable中的偏移形状”https://stackoverflow.com/a/3674134/3175580这个问题的答案恰好是同一件事,你要问。与其他答案一样,如果它是私有的,你仍然需要复制目标drawable。

优点(或缺点)是,它显示了您增加大小的确切程度,而不是总大小。另外,我认为它可以节省内存,因为使用透明形状会创建一个大小透明的位图(?)。