当前位置: 代码迷 >> Android >> Android drawRegion 作图
  详细解决方案

Android drawRegion 作图

热度:422   发布时间:2016-05-01 17:00:19.0
Android drawRegion 绘制
public void drawRegion1(Image img, int x_src, int y_src, int width,
     int height, int transform, int x_dest, int y_dest, int anchor)  {
canvas.save();
int ix = 0, iy = 0;
switch (transform) {
case TRANS_NONE: // 0
break;
case TRANS_ROT90: // 90
canvas.rotate(90, x_dest, y_dest);
iy = height;
break;
case TRANS_ROT180: // 180
canvas.rotate(180, x_dest, y_dest);
iy = height;
ix = width;
break;
case TRANS_ROT270: // 270
canvas.rotate(270, x_dest, y_dest);
ix = width;
break;
case TRANS_MIRROR: // M
canvas.scale(-1, 1, x_dest, y_dest);// 镜像
ix = width;
break;
case TRANS_MIRROR_ROT90: // M90 j2me<-->android 270
canvas.scale(-1, 1, x_dest, y_dest);// 镜像
canvas.rotate(270, x_dest, y_dest);
ix = width;
iy = height;
break;
case TRANS_MIRROR_ROT180: // M180
canvas.scale(-1, 1, x_dest, y_dest);// 镜像
canvas.rotate(180, x_dest, y_dest);
iy = height;
break;
case TRANS_MIRROR_ROT270: // M270 j2me<-->android 90
canvas.scale(-1, 1, x_dest, y_dest);// 镜像90
canvas.rotate(90, x_dest, y_dest);
break;
}
canvas.clipRect(x_dest - ix, y_dest - iy, x_dest - ix + width, y_dest
- iy + height);
canvas.drawBitmap(img.getBitmap(), x_dest - ix - x_src, y_dest - iy - y_src,
paint);
canvas.restore();

}

    protected Rect srcRec = new Rect();
protected RectF dstRec = new RectF();
   
    public void drawRegion2(Image src, int x_src, int y_src, int width,
    int height, int transform, int x_dest, int y_dest, int anchor) {
    // TODO deal with parameter transform
    srcRec.left = x_src;
    srcRec.top = y_src;
    srcRec.right = srcRec.left + width;
    srcRec.bottom = srcRec.top + height;
    dstRec.left = x_dest;
    dstRec.top = y_dest;
    dstRec.right = dstRec.left + width;
    dstRec.bottom = dstRec.top + height;
    this.canvas.drawBitmap(src.getBitmap(), srcRec, dstRec, paint);
    }
  相关解决方案