public static final int TRANS_ROT180 = 3; public static final int TRANS_MIRROR = 1; public static final int TRANS_MIRROR_ROT180 = 2; public static final int TRANS_NONE = 0; /** * @param canvas * @param aPaint * @param aBitmap * @param x * @param y * @param aFlip 转动角度 only TRANS_NONE,TRANS_MIRROR_ROT180,TRANS_MIRROR,TRANS_ROT180 */ public void drawImage(Canvas canvas,Paint aPaint,Bitmap aBitmap,int x,int y,int aFlip) { int saveCount = 0; int fx = 1, fy = 1; saveCount=canvas.save(Canvas.MATRIX_SAVE_FLAG); if((aFlip & TRANS_MIRROR) == TRANS_MIRROR) { fx = -1; x = -x - aBitmap.getWidth(); } if((aFlip & TRANS_MIRROR_ROT180) == TRANS_MIRROR_ROT180) { fy = -1; y = -y - aBitmap.getHeight(); } canvas.scale(fx, fy); canvas.drawBitmap(aBitmap,x,y,aPaint); canvas.restoreToCount(saveCount); } |