我想自定义 Android 中的 seekbar。
有人能指导我如何做吗?我是 Android 新手。
我想自定义 Android 中的 seekbar。
有人能指导我如何做吗?我是 Android 新手。
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="34dip"
android:progressDrawable="@drawable/strip"
android:thumb="@drawable/icon_small"
android:layout_weight="3.0" />
您可以简单地设置progressDrawable、thumb和background属性,然后您将获得所有您想要的内容。
// ------------ custom seekbar
LayerDrawable layer = (LayerDrawable) verticalSeekBar_1
.getProgressDrawable();
Drawable draw1 = (Drawable) layer
.findDrawableByLayerId(android.R.id.progress);
Bitmap bitmap1 = BitmapFactory.decodeResource(getApplicationContext()
.getResources(), R.drawable.scroll_on);
draw1 = new ClipDrawable(new BitmapDrawable(bitmap1),
Gravity.AXIS_PULL_BEFORE, ClipDrawable.HORIZONTAL);
layer.setDrawableByLayerId(android.R.id.progress, draw1);
Drawable draw2 = (Drawable) layer
.findDrawableByLayerId(android.R.id.background);
Bitmap bitmap2 = BitmapFactory.decodeResource(getApplicationContext()
.getResources(), R.drawable.scroll_off);
draw2 = new BitmapDrawable(bitmap2);
layer.setDrawableByLayerId(android.R.id.background, draw2);
// --------------
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progressDrawable="@drawable/seek_bar"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:thumb="@drawable/thumbler_small"
android:indeterminate="false" />
seek_bar.xml
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+android:id/SecondaryProgress"
android:drawable="@drawable/first"/>
<item
android:id="@+android:id/progress"
android:drawable="@drawable/second"/>
</layer-list>
第一个可绘制对象为空或显示不完整的颜色区域。
第二个可绘制对象是填充或色彩完整的区域。
this 链接可以帮助您更多地了解。