12

SeekBar在我的应用程序中使用了 a,我想对其进行一些自定义。我已经想出了如何更改Drawable拇指和背景的。

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

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

如何更改整体尺寸Seekbar?我希望它比标准更薄SeekBar

4

2 回答 2

23

您确实拥有与 seekbar 的进度条等效的内容:

  <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>

因此,您可能希望通过定义自己的样式来覆盖所有这些并按照自己的方式进行操作,就像您对标题栏所做的那样。

于 2010-07-06T15:51:53.723 回答
14

我不确定 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的文件夹中)。这是一个来自开源项目的示例。

于 2010-07-06T14:52:17.633 回答