在画布上绘制一个具有1种基本颜色的矩形很容易。但是,我需要能够绘制一个渐变的形状,该渐变以一种颜色开始并均匀地移动到另一种颜色。
我习惯使用xml文件绘制渐变背景。在将形状绘制到画布时,有没有办法引用xml文件?或者有更好的方法来绘制渐变形状?
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<item>
<shape>
<!-- Gradient Bg for Button -->
<gradient
android:startColor="@color/button_type1_pushed"
android:endColor="@color/button_type1_pushed"
android:angle="270" />
<stroke
android:width="0.05dp"
android:color="@color/button_type1_border"/>
</shape>
</item>
</layer-list>
</item>
<item android:state_enabled="true">
<layer-list>
<item>
<shape android:shape="rectangle">
<gradient
android:startColor="@color/button_type1_normal"
android:endColor="@color/button_type1_normal"
android:angle="90" />
<stroke
android:width="0.05dp"
android:color="@color/button_type1_border"/>
</shape>
</item>
</layer-list>
</item>
</selector>
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以将xml加载到Drawable
并在画布上绘制:
Drawable drawable = context.getResources().getDrawable(R.drawable.your_drawable);
drawable.draw(canvas);