Android 在画布上绘制渐变形状
在画布上绘制一个具有1种基本颜色的矩形很容易。但是,我需要能够绘制一个渐变形状,渐变从一种颜色开始,然后均匀地移动到另一种颜色 我习惯于使用xml文件绘制渐变背景。在画布上绘制形状时,是否有方法引用xml文件?还是有更好的方法来绘制渐变形状Android 在画布上绘制渐变形状,android,xml,android-canvas,Android,Xml,Android Canvas,在画布上绘制一个具有1种基本颜色的矩形很容易。但是,我需要能够绘制一个渐变形状,渐变从一种颜色开始,然后均匀地移动到另一种颜色 我习惯于使用xml文件绘制渐变背景。在画布上绘制形状时,是否有方法引用xml文件?还是有更好的方法来绘制渐变形状 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <
<?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>
您可以将xml加载到可绘制的
中,并在画布上绘制:
Drawable drawable = context.getResources().getDrawable(R.drawable.your_drawable);
drawable.draw(canvas);
有关详细信息,请参见。您可以将xml加载到可绘制的中,并在画布上绘制:
Drawable drawable = context.getResources().getDrawable(R.drawable.your_drawable);
drawable.draw(canvas);
有关详细信息,请参见。您必须在paint元素中创建一个着色器作为LinearGradient,然后在画布中绘制一个矩形
通过绘制矩形的方式,可以有水平和垂直渐变
您可以看到一个代码示例您必须在paint元素中创建一个着色器作为LinearGradient,然后在画布中绘制一个矩形
通过绘制矩形的方式,可以有水平和垂直渐变
您可以看到一个代码示例