我正在尝试为我的Android应用程序创建自定义seekbar。我找到了许多解决方案,但它们都使用“自定义”绘图代码作为背景。我的seekbar很简单-我有一个图像(仅一个)用于背景和一个用于拇指的图像。我面临的问题是缩放:我希望“thumb”和“background”图像根据seekbar控件的大小进行缩放。如何做到这一点?有趣的是,当使用图像(drawable)作为背景/拇指时,Android默认情况下不会对其进行缩放,而是保留它们的原始大小 :)
1 您可以使用xml文件(progress.xml)定义ProgressBar的外观并将其放置在res目录中。
2 可以在声明ProgressBar的布局中定义thumb。
3 thumb可以是图像(imgthumb.png),但我注意到2个最佳实践
以下是来源
1 progress.xml
<?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 android:shape="rectangle" >
<corners android:radius="5dp" />
<gradient
android:angle="270"
android:endColor="#cccccc"
android:startColor="#d3d3d3" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape android:shape="rectangle" >
<corners android:radius="0dp" />
<gradient
android:angle="270"
android:endColor="#ff0000"
android:startColor="#ff0000" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape android:shape="rectangle" >
<corners android:radius="5dp" />
<gradient
android:angle="270"
android:endColor="#1dc0ff"
android:startColor="#1dc0ff" />
</shape>
</clip>
</item>
2 在布局中定义一个带有自定义滑块的进度条
<SeekBar
android:id="@+id/song_seekbar"
android:layout_width="0dp"
android:layout_weight=".84"
android:minHeight="8dip"
android:maxHeight="8dip"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerInParent="true"
android:progressDrawable="@drawable/progressbar"
android:thumb="@drawable/imgthumb" />