如何在Android中更改搜索栏颜色?

时间:2011-12-22 05:38:36

标签: android

有没有办法可以在SeekBar android小部件中更改黄色?

enter image description here

任何soln?

1 个答案:

答案 0 :(得分:1)

第1步:创建图像绘图(9-Patch)

在创建任何XML drawable之前,请确保创建seekbar背景,句柄和进度部分所需的图像drawable(包括一个9-patch drawable)。这些9-patch drawables将在下面的步骤中由XML drawables使用。

创建以下drawable并将它们放在/ res / drawable /文件夹中:

第2步:SeekBar Progress Drawable

现在为Android搜索栏进度创建一个XML drawable(示例中的蓝色条纹部分),将其命名为seekbar_progress_bg.xml,并将其放在/ res / drawable /文件夹中:

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <clip>
            <shape>
                <gradient
                    android:startColor="#FF5e8ea3"
                    android:centerColor="#FF32a0d2"
                    android:centerY="0.1"
                    android:endColor="#FF13729e"
                    android:angle="270"
                />
            </shape>
        </clip>
    </item>
    <item>
        <clip>
        <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
            android:src="@drawable/stripe_bg"
            android:tileMode="repeat"
            android:antialias="true"
            android:dither="false"
            android:filter="false"
            android:gravity="left"
        />
        </clip>
    </item>
</layer-list>

上述XML首先绘制一个半透明的蓝色渐变,然后将半透明条纹图像层叠在渐变的顶部。突出显示的代码行(第20行)是指在第1步中创建的drawable文件夹中的条纹(半透明)图像。

有关通过XML创建自定义形状的更多信息,请查看Android可绘制资源文档,特别是位图和形状部分。

第3步:SeekBar背景可绘制

接下来创建主搜索栏进度drawable;它会为搜索栏中的搜索栏进度和secondaryProgress操作分配一个drawable。将您的drawable命名为seekbar_progress.xml,将其放在/ res / drawable /文件夹中:

<?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
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:src="@drawable/seekbar_background"
            android:dither="true"
         />
    </item>
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <gradient
                    android:startColor="#80028ac8"
                    android:centerColor="#80127fb1"
                    android:centerY="0.75"
                    android:endColor="#a004638f"
                    android:angle="270"
                />
            </shape>
        </clip>
    </item>
    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/seekbar_progress_bg"
    />
</layer-list>

上面突出显示的代码的第一位(第8行)是指在步骤1中创建的搜索栏背景图像(9-patch drawable),(第29行)是指您在上面步骤2中创建的drawable。

第4步:将所有这些结合在一起......

此时,您需要做的就是在声明搜索栏时调用seekbar_progress drawable:

<SeekBar
        android:id="@+id/frequency_slider"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:max="20"
        android:progress="0"
        android:secondaryProgress="0"
        android:progressDrawable="@drawable/seekbar_progress"
        android:thumb="@drawable/seek_thumb"
/>

两行突出显示的代码正在设置SeekBar项目的进度和拇指绘制。 @ drawable / seekbar_progress指的是在上一步中创建的XML drawable。