Android Canvas绘制渐变梯形示例代码
以下是一个Android Canvas绘制渐变梯形的实例代码:
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Shader;
import android.view.View;
public class GradientTrapezoidView extends View {
private Paint paint;
public GradientTrapezoidView(Context context) {
super(context);
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
// 创建一个渐变的Shader
Shader shader = new LinearGradient(0, 0, 0, height,
Color.parseColor('#FF0000'), Color.parseColor('#00FF00'),
Shader.TileMode.CLAMP);
// 设置画笔的Shader
paint.setShader(shader);
// 创建一个Path对象,用于绘制梯形
Path path = new Path();
path.moveTo(0, height); // 左下角点
path.lineTo(width, height); // 右下角点
path.lineTo(width * 0.8f, height * 0.6f); // 右上角点
path.lineTo(width * 0.2f, height * 0.6f); // 左上角点
path.close(); // 闭合梯形
// 绘制梯形
canvas.drawPath(path, paint);
}
}
要在Activity中使用此自定义视图,可以在布局文件中添加以下代码:
<com.example.GradientTrapezoidView
android:layout_width="match_parent"
android:layout_height="match_parent" />
然后在Activity中设置ContentView:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
这样就可以在Activity的界面上绘制出一个渐变的梯形。
原文地址: https://www.cveoy.top/t/topic/bs01 著作权归作者所有。请勿转载和采集!