繁体   English   中英

自定义SeekBar Drawable Android

[英]Custom SeekBar Drawable Android

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

在此输入图像描述

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

  1. 正确的形象

    在此输入图像描述

  2. 中心图像

    在此输入图像描述

  3. 左图

    在此输入图像描述

结果应该是:

在此输入图像描述

蓝色图像代表进度,如下:

  1. 正确的形象

    在此输入图像描述

  2. 中心图像

    在此输入图像描述

  3. 左图

    在此输入图像描述

拇指如下:

在此输入图像描述

我的问题是,如何使用九个补丁图像来生成与第一张图片完全相同的自定义搜索栏,如何将其应用于我的搜索栏?

我认为这应该不复杂。 您无需制作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">

在你的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>

请记住,在创建时,您的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>

这将是您的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));
    }
}

1)转到AndroidSDK - >工具并运行draw9patch.bat

你会看到黑色的窗户

2)将图片拖入窗口并启动9补丁:

开始修补你的照片

3)现在转到文件菜单, 然后单击保存9补丁...

最后提示:你的图片必须是.PNG格式,只包含内容而不是它周围的空闲空间。 例如,我将你的照片保存在我的电脑中,看到照片的蓝色部分有很多未使用的空间。

现在申请你的搜索栏

也可以点击链接

创建自定义幻灯片栏

对不起; 我没有足够的声誉来插入图片

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM