Android开发——手把手写APP(四)——数独游戏编写(一)——绘制九宫格

数独游戏开发(一)绘制九宫格


B站数独开发视频教程
上述视频是本人该系列博客所学视频。

九宫格,分为九条横线,九条竖线,其中,有三条横线和竖线是加深的。

绘制九宫格的九条浅色线

为了让九宫格的线看上去跟刻的一样,特意画两条线,中间隔一像素即可。

public class ShuduView extends View {

    //单元格的宽度和高度
    private  float width;
    private float height;
    public ShuduView(Context context) {
        super(context);
    }

    @Override
    protected void onSizeChanged(int w,int h,int oldw,int oldh){
        //计算当前单元格的宽度和高度
        this.width = w / 9f;
        this.height = h / 9f;
        super.onSizeChanged(w,h,oldw,oldh);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        //生成用于绘制背景色的画笔
        Paint backgroundPaint = new Paint();
        //设置画笔的颜色
        backgroundPaint.setColor(getResources().getColor(R.color.shudu_background));
        //绘制背景色
        canvas.drawRect(0,0,getWidth(),getHeight(),backgroundPaint);

        //深色画笔
        Paint drakPaint = new Paint();
        drakPaint.setColor(getResources().getColor(R.color.shudu_dark));

        Paint hilitePaint = new Paint();
        hilitePaint.setColor(getResources().getColor(R.color.shudu_hilite));

        //浅色画笔
        Paint lightPaint = new Paint();
        lightPaint.setColor(getResources().getColor(R.color.shudu_light));

        //画出九宫格的9根浅色线
        for(int i = 0;i < 9;i++) {
            canvas.drawLine(0,i * height,getWidth(),i * height,lightPaint);
            canvas.drawLine(0,i * height + 1,getWidth(),i * height + 1,lightPaint);
            canvas.drawLine(i * width,0,i * width,getHeight(),lightPaint);
            canvas.drawLine(i * width + 1,0,i * width + 1,getHeight(),lightPaint);
        }
}

在这里插入图片描述

绘制九宫格的三条深色线

        //画出九宫格的3跟深色线
       for(int i = 0;i < 9;i++){
            if(i%3!=0){
                continue;
            }
            canvas.drawLine(0,i * height,getWidth(),i * height,drakPaint);
            canvas.drawLine(0,i * height + 1,getWidth(),i * height + 1,drakPaint);
            canvas.drawLine(i * width,0,i * width,getHeight(),drakPaint);
            canvas.drawLine(i * width + 1,0,i * width + 1,getHeight(),drakPaint);
        }

在这里插入图片描述

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狮子座的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值