2010-07-06 64 views
11

我在我的应用程序中使用了一个SeekBar,我想定制它一点。我已经想出了如何更改拇指和背景的Drawable如何在Android中自定义SeekBar的外观?

我的问题是如何改变SeekBar的大小?如果我只是改变了SeekBar like this, the查看is only clipped and it only shows the top piece of the SeekBar`的高度:

<SeekBar 
    android:layout_height="10dip" 
    style="@style/seekbar_style" /> 

如何改变Seekbar的总体规模?我希望它比标准SeekBar更薄。

+0

你也可以阅读本教程。 http://www.mokasocial.com/2011/02/create-a-custom-styled-ui-slider-seekbar-in-android/ – Ali 2012-05-11 04:32:52

回答

13

我不知道Seekbars,但Progressbars可以通过使用自定义样式(在styles.xml定义),像这样定制:

<style name="MyCustomProgressStyle"> 
    <item name="android:indeterminateOnly">false</item> 
    <item name="android:progressDrawable">@drawable/custom_progress_drawable</item> 
    <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item> 
    <item name="android:minHeight">10dip</item> 
    <item name="android:maxHeight">10dip</item> 
</style> 

然后你就可以建立一个基于自定义绘制android系统的progress_horizontal.xml(它位于AOSP checkoutframeworks/base/core/res/drawable文件夹中)。这是来自开源项目的an example

23

你有这个进度条的等效搜索条确实:

<style name="Widget.SeekBar"> 
    <item name="android:indeterminateOnly">false</item> 
    <item name="android:progressDrawable">@android:drawable/progress_horizontal</item> 
    <item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item> 
    <item name="android:minHeight">20dip</item> 
    <item name="android:maxHeight">20dip</item> 
    <item name="android:thumb">@android:drawable/seek_thumb</item> 
    <item name="android:thumbOffset">8px</item> 
    <item name="android:focusable">true</item> 
    </style> 

所以,你可能要覆盖这一切,做你的方式,你会为标题栏做,通过定义你自己的风格。

+0

这对我的作品和演示了如何改变“大拇指”的形象(我只是无法弄清楚“thumbOffset”是什么) – 2011-10-11 08:53:34

+1

@RichardLeMesurier thumbOffset只是拇指和seekbar边缘之间的一个看不见的“间隙”。你将它设置为阻止拇指远离两侧移动。 – Glitch 2011-10-12 16:23:51

+0

如何更改“拇指”图片 – mohitum 2015-03-19 12:03:05