1、放大、缩小
public void onDraw(Canvas canvas) { super.onDraw(canvas); /* 重置mMatrix */ mMatrix.reset(); /* 设置缩放 */ mMatrix.postScale(Scale,Scale); /* 按mMatrix得旋转构建新的Bitmap */ Bitmap mBitQQ2 = Bitmap.createBitmap(mBitQQ, 0, 0, BitQQwidth,BitQQheight, mMatrix, true); /* 绘制旋转之后的图片 */ GameView.drawImage(canvas, mBitQQ2, (320-BitQQwidth)/2, 10); mBitQQ2 = null; }
// 按键按下事件 public boolean onKeyDown(int keyCode, KeyEvent event) { //左方向键 if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { if ( Scale > 0.3 ) { Scale-=0.1; } } //右方向键 else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { if ( Scale < 1.5 ) { Scale+=0.1; } } return true; }
最后使用postInvalidate可以直接在线程中更新界面 postInvalidate();
2、旋转
mMatrix.rotate(角度);