Android Canvas 的使用

本文介绍如何使用Android自定义视图绘制棋盘。通过继承View类并复写onDraw方法,利用Canvas和Paint实现了一个可调整格子数量的棋盘绘制。文中详细解释了绘制流程及关键代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于对UI多种多样的需求,单纯的android给定的控件已经无法满足我们。这个时候我们就需要去自定义控件。就会用到Canvas画布。

在Canvas上,我们想画什么就画什么。

一个简单棋盘格的示例:


首先要创建一个类来继承自View来实现画布;

复写类的Ondraw方法,所有的绘制都在Ondraw里完成;

初始化一个Paint 画笔,来对画布进行绘制。

public class GameView extends View {
    private int startX = 0;
    private int startY = 0;
    private int GRID_NUM;
    private int GRID_WIDTH;
    private Paint paint = null;
    public GameView(Context context,int number) {
        super(context);
        GRID_NUM = number;
        paint = new Paint();//实例化一个画笔
        paint.setAntiAlias(true);//设置画笔去锯齿,没有此语句,画的线或图片周围不圆滑
    }
    public void onDraw(Canvas canvas) {

        canvas.drawColor(Color.GREEN);//背景色
        paint.setColor(Color.BLUE);//画笔颜色
        // 每个格子的宽度
        GRID_WIDTH = this.getWidth()/(GRID_NUM-1);
        //宽度*各自每行数量=一行格子所占尺寸。屏幕总尺寸-有用尺寸=空白尺寸,空白尺寸/2为每个边所空闲空间

        startX = this.getWidth()%(GRID_NUM-1)/2;
        startY = startX;
        Toast.makeText(getContext(),"各尺寸:"+ GRID_WIDTH+"占用尺寸: " + GRID_NUM*GRID_WIDTH + "总尺寸: " + this.getWidth(),Toast.LENGTH_SHORT).show();
        for (int i = 0; i < GRID_NUM; i++) {
            canvas.drawLine(startX, startY + i * GRID_WIDTH, startX + (GRID_NUM - 1) * GRID_WIDTH, startY + i * GRID_WIDTH, paint);
            canvas.drawLine(startX + i * GRID_WIDTH, startY, startX + i * GRID_WIDTH, startY + (GRID_NUM - 1) * GRID_WIDTH, paint);
        }
    }

}
一个简单的棋盘格绘制就完成了,还可以根据传入的参数来显示不同格子数量的棋盘格


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值