我正在构建一个Android应用程序,我正在构建一个自定义进度条/滚轮。
我想做的不是使用纯色来表示进度,我想使用2种颜色(现在是蓝色和白色)但是颜色不应该是渐变的,它应该只是蓝色和白色相邻,没有任何渐变。
到目前为止,这是我尝试过的。我有一个gradient_bg.xml
文件声明如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<gradient
android:type="linear"
android:startColor="#FFFFFFFF"
android:endColor="#FF008080"
android:angle="90"/>
</shape>
我在我的代码中使用它:
barPaint.setColor(getResources().getColor(R.drawable.gradient_bg));
但是,由于它不是一种颜色,我不能将它用作颜色。如果我删除getResources().getColor()
行,我最终会得到灰色的颜色。此外,我预料到的另一个问题是,当进度/滚轮正在递增时,我将不再有蓝白蓝 - 白段,而是蓝蓝 - 白 - 白段。
答案 0 :(得分:0)
您可以使用layer-list
来构建更复杂的drawable。
请参阅此StackOverflow问题,了解如何:Understanding Android's <layer-list>
然后你可以用drawabe绘制它:
Drawable d = getResources.getDrawable(R.drawable.two_colors);
d.setBounds(0, 0, width, height);
d.draw(canvas);
我希望它有所帮助