Android 中的画画函数

/**
* 画交叉十字线及坐标信息
*
* @param x:线的x坐标
* @param y:线的y坐标
* @param paint:线的颜色
* @param ptr:第几个点
* @param id:id值
* @param c:画布
*/
private void drawCrosshairsAndText(int x, int y, Paint paint, int ptr,
int id, Canvas c) {
//在(0,y)和(width,y)这两个点上画直线
c.drawLine(0, y, width, y, paint);
//在(x, 0)和(x, height)这两个点上画直线
c.drawLine(x, 0, x, height, paint);
//定义文字的大小
int textY = (int) ((15 + 20 * ptr) * scale);
//画出x的值
c.drawText("x" + ptr + "=" + x,
10 * scale, textY, textPaint);
//画出y的值
c.drawText("y" + ptr + "=" + y,
70 * scale, textY, textPaint);
//画出id的值
c.drawText("id" + ptr + "=" + id,
width - 55 * scale, textY, textPaint);
}

/**
* 画手指点击的实心圆
*
* @param x:实心圆的x值
* @param y:实心圆的y值
* @param paint:实心圆的画笔
* @param c:在这个画布上画
*/
private void drawCircle(int x, int y, Paint paint, Canvas c) {
//在canvas上画圆
c.drawCircle(x, y, 20 * scale, paint);
}

/*
* 进入程序时背景画成黑色,然后把“START_TEXT”写到屏幕
*/
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
//得到屏幕的宽度
this.width = width;
//得到屏幕的高度
this.height = height;
//得到屏幕的放大比例
if (width > height) {
this.scale = width / 480f;
} else {
this.scale = height / 480f;
}
//通过放大比例计算出字体大小
textPaint.setTextSize(14 * scale);
//得到当前View的holder对象
Canvas c = getHolder().lockCanvas();
//设置背景为黑色
if (c != null) {
// 背景黑色
c.drawColor(Color.BLACK);
//在屏幕中间画上提示语
float tWidth = textPaint.measureText(START_TEXT);
c.drawText(START_TEXT,
width / 2 - tWidth / 2, height / 2,
textPaint);
//解锁显示
getHolder().unlockCanvasAndPost(c);
}
}

原文地址:https://www.cnblogs.com/liumin-txgt/p/12987326.html