在安卓开发的过程中,经常会使用到自定义的view,一般为了节约时间,都是通过在GitHub上寻找,通过自己简单的修改来实现,想要的效果。但是还没有自己写过一个功能完善的自定义View,现在打算从自定义View的基础开始学起,这一篇主要介绍画布的基础知识。
新建一个MyView,在onDraw()中可以绘制各种图形。在绘制之前需要先了解一下画布的坐标系。默认的绘图坐标系是以手机的左上角为原点,水平方向为X轴,垂直向下是Y轴正方向。如图红色边框所示:
画布通过translate、rotate、scale,可以改变绘图坐标系。其中translate可以实现平移的效果。设置canvas.translate(getWidth() / 4f, getWidth() /4f)的效果如图。
实现的代码如下所示:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(60);
paint.setColor(Color.RED);
canvas.drawLine(0, 0, getW