我想将默认的Android搜索栏个性化为:

我读了大约9个补丁图像并创建了6个png图像.前三个是灰色进度条(progressDrawable),如下所示:
正确的形象

中心图像

左图

结果应该是:

蓝色图像代表进度,如下:
正确的形象

中心图像

左图

拇指如下:

我的问题是,如何使用九个补丁图像来生成与第一张图片完全相同的自定义搜索栏,如何将其应用于我的搜索栏?
bob*_*hox 16
我认为这应该不复杂.您无需制作6张图像即可满足您的需求.只需为背景,进度创建2个九个补丁.和thumb.png.这是你的XML:
<SeekBar
android:id="@+id/my_seekbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:progressDrawable="@drawable/seekbar_progress"
android:thumb="@drawable/thumb">
Run Code Online (Sandbox Code Playgroud)
在你的seekbar_progress:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background">
<nine-patch android:src="@drawable/progressbar_bg" android:dither="true"/>
</item>
<item android:id="@android:id/progress">
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:clipOrientation="horizontal"
android:gravity="left">
<nine-patch android:src="@drawable/progressbar_status" android:dither="true"/>
</clip>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
请记住,thumb创建时应该在顶部有空白区域,这样看起来就像你想要的那样.希望这可以帮助.
您可以使用Java代码使用自定义搜索栏...并添加图层列表作为drawables ...这段代码将帮助您,我希望.
1.LayerList drawable
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background">
<nine-patch
android:src="@drawable/your_nine_patch_image"
android:tileMode="repeat">
</nine-patch>
</item>
<item
android:id="@android:id/progress">
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<clip >
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/clipimage_for_progress"
android:tileMode="repeat"/>
</clip>
</item>
</layer-list>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
这将是您的customSeekbar类,您可以在您的应用中使用此自定义搜索栏
public class CustomSeekbar {
public CustomSeekbar(Context context) {
super(context);
setCustomUI();
}
public CustomSeekbar(Context context, AttributeSet attrs) {
super(context, attrs);
setCustomUI();
}
public CustomSeekbar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setCustomUI();
}
void setCustomUI() {
this.setProgressDrawable(getResources().getDrawable(
R.drawable.yourBackground));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31175 次 |
| 最近记录: |