问题
I use a SeekBar
in my application and I would like to customize it a little bit. I already figured out how to change the Drawable
for the thumb and for the background.
My question is how to change the size of the SeekBar
? If I just change the height of the SeekBar like this, the
Viewis only clipped and it only shows the top piece of the
SeekBar`:
<SeekBar
android:layout_height="10dip"
style="@style/seekbar_style" />
How do I change the overall size of the Seekbar
? I want it to be much thinner then the standard SeekBar
.
回答1:
I'm not sure about Seekbars, but Progressbars can be customized by using a custom style (defined in your styles.xml) like so:
<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>
Then you can set up a custom drawable based on the android system's progress_horizontal.xml
(it's in the frameworks/base/core/res/drawable
folder of an AOSP checkout). Here's an example from an open-source project.
回答2:
You have the equivalent of this of the Progress Bar for the seekbar indeed :
<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>
So you might want to override all this and do it your way, as you would do it for the title bar, by defining your own style.
来源:https://stackoverflow.com/questions/3187154/how-to-customize-the-look-of-a-seekbar-in-android