Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Android SeekBar progressDrawable使用渐变_Android_Gradient_Styling_Android Seekbar - Fatal编程技术网

为Android SeekBar progressDrawable使用渐变

为Android SeekBar progressDrawable使用渐变,android,gradient,styling,android-seekbar,Android,Gradient,Styling,Android Seekbar,目前我正在开发一款类似渐变的定制SeekBar。我尝试用自己的风格实现seekbar。所以我喜欢这样: ... <style name="GreenSeekBar.Static.NoThumb"> <item name="android:progressDrawable">@drawable/sq_seekbar_clipped</item> <item name="android:thumb">@null</item>

目前我正在开发一款类似渐变的定制SeekBar。我尝试用自己的风格实现seekbar。所以我喜欢这样:

...
<style name="GreenSeekBar.Static.NoThumb">
    <item name="android:progressDrawable">@drawable/sq_seekbar_clipped</item>
    <item name="android:thumb">@null</item>
</style>`
。。。
@可拉拔/方形seekbar
@空的
`
下面是sq\u seekbar\u clipped.xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@android:id/progress">
    <clip>
        <shape>
            <corners android:radius="2dp"/>
            <gradient
                android:endColor="#00c492"
                android:startColor="#e8e8e8" />
        </shape>
    </clip>
</item>

<item android:id="@android:id/secondaryProgress">
    <shape android:shape="rectangle">
        <size android:height="3dp" />
        <solid android:color="@color/transparent" />
    </shape>
</item>
</layer-list>

所以,除了一件事之外,一切都很顺利——我收到了:

所以,正如你们从我得到的,梯度被裁剪了。我需要梯度从0到[progress_value]。可能吗


有什么方法可以像第一张(顶部链接)图像那样绘制渐变吗?

您应该在第二个进度中设置渐变,并在进度中设置纯色

大概是这样的:

  <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:id="@android:id/progress">
  <clip>
     <shape>
         <size android:height="3dp" />
         <solid android:color="@color/transparent" />

     </shape>
  </clip>
 </item>

 <item android:id="@android:id/secondaryProgress">
  <shape android:shape="rectangle">
       <corners android:radius="2dp"/>
         <gradient
             android:endColor="#00c492"
             android:centerColor=""
             android:startColor="#e8e8e8" />
   </shape>
 </item>
 </layer-list>


另外,提供一些中心颜色以获得清晰的视图。

您只需更改即可

<clip>


这里是sq_seekbar_clipped.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/progress">
        <scale android:scaleWidth="100%">
            <shape>
                <corners android:radius="2dp"/>
                <gradient
                    android:endColor="#00c492"
                    android:startColor="#e8e8e8"/>
            </shape>
        </scale>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <shape android:shape="rectangle">
            <size android:height="3dp"/>
            <solid android:color="@color/android:transparent"/>
        </shape>
    </item>
</layer-list>


不,那不行。我最好用自己的onDraw()方法来寻找某种自定义视图。你有没有链接来解释
android:scaleWidth
是如何工作的?
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/progress">
        <scale android:scaleWidth="100%">
            <shape>
                <corners android:radius="2dp"/>
                <gradient
                    android:endColor="#00c492"
                    android:startColor="#e8e8e8"/>
            </shape>
        </scale>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <shape android:shape="rectangle">
            <size android:height="3dp"/>
            <solid android:color="@color/android:transparent"/>
        </shape>
    </item>
</layer-list>