canvas教程

Graphics类详解

字号+ 作者:H5之家 来源:H5之家 2015-10-14 15:09 我要评论( )

1. Paint setAntiAlias:设置画笔的抗锯齿效果 setColor:设置画笔的颜色 setAlpha:设置Alpha值

try {

canvas = sfh.lockCanvas();

if (canvas != null) {

canvas.drawColor(Color.WHITE);

//-----设置画笔无锯齿

Paint paint1 = new Paint();

canvas.drawCircle(40, 30, 20, paint1);

paint1.setAntiAlias(true);

canvas.drawCircle(100, 30, 20, paint1);

//-----设置画笔的透明度

canvas.drawText("无透明度", 100, 70, new Paint());

Paint paint2 = new Paint();

paint2.setAlpha(0x77);

canvas.drawText("半透明度", 20, 70, paint2);

//-----设置绘制文本的锚点

canvas.drawText("锚点", 20, 90, new Paint());

Paint paint3 = new Paint();

//设置以文本的中心点绘制

paint3.setTextAlign(Paint.Align.CENTER);

canvas.drawText("锚点", 20, 105, paint3);

//------获取文本的长度

Paint paint4 = new Paint();

float len =paint4.measureText("文本宽度:");

canvas.drawText("文本长度:"+len, 20, 130, new Paint());

//------设置画笔样式

canvas.drawRect(new Rect(20,140,40,160), new Paint());

Paint paint5 = new Paint();

//设置画笔不填充

paint5.setStyle(Style.STROKE);

canvas.drawRect(new Rect(60,140,80,160), paint5);

//------设置画笔颜色

Paint paint6 = new Paint();

paint6.setColor(Color.GRAY);

canvas.drawText("灰色", 30, 180, paint6);

//------设置画笔的粗细程度

canvas.drawLine(20, 200,70, 200, new Paint());

Paint paint7 = new Paint();

paint7.setStrokeWidth(7);

canvas.drawLine(20, 220,70, 220,paint7);

//------设置画笔绘制文本的字体粗细

Paint paint8 = new Paint();

paint8.setTextSize(20);

canvas.drawText("文字尺寸", 20, 260, paint8);

//------设置画笔的ARGB分量

Paint paint9 = new Paint();

paint9.setARGB(0x77, 0xff, 0x00, 0x00);

canvas.drawText("红色半透明", 20, 290, paint9);

}

} catch (Exception e) {

// TODO: handle exception

} finally {

if (canvas != null)

sfh.unlockCanvasAndPost(canvas);

}


//Bitmap

try {

canvas = sfh.lockCanvas();

if (canvas != null) {

canvas.drawColor(Color.BLACK);

//----------绘制位图

//canvas.drawBitmap(bmp, 0, 0, paint);

//----------旋转位图(方式1)

//canvas.save();

//canvas.rotate(30, bmp.getWidth()/2, bmp.getHeight()/2);

//canvas.drawBitmap(bmp, 0, 0, paint);

//canvas.restore();

//canvas.drawBitmap(bmp, 100, 0, paint);

//----------旋转位图(方式2)

//Matrix mx = new Matrix();

//mx.postRotate(30, bmp.getWidth() / 2, bmp.getHeight() / 2);

//canvas.drawBitmap(bmp, mx, paint);

//----------平移位图(方式1)

//canvas.save();

//canvas.translate(10, 10);

//canvas.drawBitmap(bmp, 0, 0, paint);

//canvas.restore();

//----------平移位图(方式2)

//Matrix maT = new Matrix();

//maT.postTranslate(10, 10);

//canvas.drawBitmap(bmp, maT, paint);

//----------缩放位图(方式1)

//canvas.save();

//canvas.scale(2f, 2f, 50 + bmp.getWidth() / 2, 50 + bmp.getHeight() / 2);

//canvas.drawBitmap(bmp, 50, 50, paint);

//canvas.restore();

//canvas.drawBitmap(bmp, 50, 50, paint);

//----------缩放位图(方式2)

//Matrix maS = new Matrix();

//maS.postTranslate(50, 50);

//maS.postScale(2f, 2f, 50 + bmp.getWidth() / 2, 50 + bmp.getHeight() / 2);

//canvas.drawBitmap(bmp, maS, paint);

//canvas.drawBitmap(bmp, 50, 50, paint);

//----------镜像反转位图(方式1)

//X轴镜像

//canvas.drawBitmap(bmp, 0, 0, paint);

//canvas.save();

//canvas.scale(-1, 1, 100 + bmp.getWidth() / 2, 100 + bmp.getHeight() / 2);

//canvas.drawBitmap(bmp, 100, 100, paint);

//canvas.restore();

//Y轴镜像

//canvas.drawBitmap(bmp, 0, 0, paint);

//canvas.save();

//canvas.scale(1, -1, 100 + bmp.getWidth() / 2, 100 + bmp.getHeight() / 2);

//canvas.drawBitmap(bmp, 100, 100, paint);

//canvas.restore();

//----------镜像反转位图(方式2)

//X轴镜像

canvas.drawBitmap(bmp, 0, 0, paint);

Matrix maMiX = new Matrix();

maMiX.postTranslate(100, 100);

maMiX.postScale(-1, 1, 100 + bmp.getWidth() / 2, 100 + bmp.getHeight() / 2);

canvas.drawBitmap(bmp, maMiX, paint);

//Y轴镜像

canvas.drawBitmap(bmp, 0, 0, paint);

Matrix maMiY = new Matrix();

maMiY.postTranslate(100, 100);

maMiY.postScale(1, -1, 100 + bmp.getWidth() / 2, 100 + bmp.getHeight() / 2);

canvas.drawBitmap(bmp, maMiY, paint);

}

} catch (Exception e) {

// TODO: handle exception

} finally {

if (canvas != null)

sfh.unlockCanvasAndPost(canvas);

}

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5新特性详解(三)

    HTML5新特性详解(三)

    2017-04-30 16:03

  • 在Android中需要通过graphics类来显示2D图形

    在Android中需要通过graphics类来显示2D图形

    2017-04-27 11:00

  • HTML5 canvas平铺的代码详解

    HTML5 canvas平铺的代码详解

    2017-04-21 08:02

  • JS原型与原型链终极详解

    JS原型与原型链终极详解

    2017-03-25 08:02

网友点评
'