为Android SeekBar progressDrawable使用渐变
目前我正在开发一款类似渐变的定制SeekBar。我尝试用自己的风格实现seekbar。所以我喜欢这样:为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>
...
<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>