简介
这篇文章是我看了 Mars老师 讲的开发数独教程,得到学习笔记和感想。这里面的代码和框架我都改了一下。在这里要感谢一下互联网,和 Mars老师。
数独界面展示
源码
数独分析
基础知识
手机的坐标系
如上图所示,左上角0点为手机屏幕最左上方。
Paint和Canvas
Paint 是画笔,这个画笔你可以设置为你想要的画笔,比如颜色、大小、形状。本文用到的有:
// 设置颜色
public native void setColor(@ColorInt int color);
// 设置样式
public void setStyle(Style style);
// 设置文字对齐
public void setTextAlign(Align align);
// 设置大小
public native void setTextSize(float textSize);
// 消除锯齿一样的边缘
public native void setAntiAlias(boolean aa);
Canvas 是画布,在这个画布上你可以任意画出你想要的东西。本文用到的方法有:
// 画一个矩形, (left, top) 为左上点、(right, botton) 为右下点。
public void drawRect(float left, float top, float right, float bottom, @NonNull Paint paint);
// 画一条直线, (startX, startY) 为左坐标、(stopX, stopY) 为右坐标。
public void drawLine(float startX, float startY, float stopX, float stopY, @NonNull Paint paint);
// 写字, text 为内容, (x, y) 为首字最左边的坐标,其余字按照直线依次显示。
public void drawText(@NonNull String text, float x, float y, @NonNull Paint paint);
FontMetrics
上图是字在 FontMetrics 中的各种属性值。等下我们要用这个来调节字体的位置,大家只要记住里面的几个名字就行。
Baseline 是字体的水平线。也就是横轴和手机的坐标系一样。向上为负值,向下为正值。
获取 FontMetrics 对象如下:
//其中 paint 为所用的画笔对象Paint.FontMetrics fontMetrics = paint.getFontMetrics();