剪切位图的一部分

sar*_*nan 30 android android-layout

可能重复:
如何在android中裁剪解析后的图像?

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

a.c*_*ch. 133

为了防止有人试图解决同样的问题,有一个更好的解决方案: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);
Run Code Online (Sandbox Code Playgroud)


Zel*_*mir 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;
}
Run Code Online (Sandbox Code Playgroud)