剪切位图的一部分

时间:2011-03-25 12:36:33

标签: android android-layout

  

可能重复:
  How to crop the parsed image in android?

我从位图中选择了一部分,我在同一位图中复制了所选部分。现在我想在复制后删除所选部分..怎么做?请帮帮我..

2 个答案:

答案 0 :(得分:125)

万一有人试图解决同样的问题,有一个更好的解决方案:Bitmap.createBitmap(Bitmap, int x, int y, int width, int height)。例如,如果您需要从位图的每一侧裁剪10个像素,请使用:

Bitmap croppedBitmap = Bitmap.createBitmap(originalBitmap, 10, 10, originalBitmap.getWidth() - 20, originalBitmap.getHeight() - 20);

答案 1 :(得分:18)

我所知道的最简单的方法是使用Graphics包中的XFer模式处理。下面的函数将从(30,30)到(100,100)的区域切割为从资源加载的320x480图像。调整坐标以动态更改:

private Bitmap cropBitmap1() {
    Bitmap bmp2 = BitmapFactory.decodeResource(this.getResources(), R.drawable.image1); 
    Bitmap bmOverlay = Bitmap.createBitmap(320, 480, Bitmap.Config.ARGB_8888);

    Paint paint = new Paint();
    paint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));

    Canvas canvas = new Canvas(bmOverlay); 
    canvas.drawBitmap(bmp2, 0, 0, null); 
    canvas.drawRect(30, 30, 100, 100, paint);

    return bmOverlay;
}