如何在Android中裁剪屏幕截图

时间:2012-08-15 12:27:08

标签: android

我想在我的应用中绘制线条。完成后,我想将屏幕保存为图像。但我不希望按钮出现在图像中。我想裁剪它,然后保存它。我试图使用此代码在onclicklistener中裁剪我的位图。但它没有用。 Bitmap.createBitmap(bitmap,5,5,5,5); 这是我的全部代码:

    content.setDrawingCacheEnabled(true); 
    content.buildDrawingCache(); 
    Bitmap bitmap = Bitmap.createBitmap(content.getDrawingCache()); // Bitmap
    Bitmap.createBitmap(bitmap, 5, 5, 5, 5);
    content.setDrawingCacheEnabled(false);

    File file = new File("/sdcard/SurucuImza.jpg");
    FileOutputStream ostream = null;



    try {
        if (bitmap != null) {
            file.createNewFile();
            ostream = new FileOutputStream(file);
            bitmap.compress(CompressFormat.JPEG, 100, ostream); 
            ostream.flush();
            ostream.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    bitmap.recycle();
    bitmap = null;
    ostream = null;
    content.setDrawingCacheEnabled(false);

}

2 个答案:

答案 0 :(得分:1)

您应该将此行的结果分配给变量:

Bitmap.createBitmap(bitmap, 5, 5, 5, 5);

//Ex:
Bitmap croppedBitmap = Bitmap.createBitmap(bitmap, 5, 5, 5, 5);

然后保存croppedBitmap而不是bitmap.

还有一件事,你确定你的按钮是5x5像素吗? createBitmap()的最后两个参数指定widthheight

答案 1 :(得分:0)

由于Android屏幕尺寸和密度的大小可变,我建议您不要使用content,但是在您的XML布局上,您有一个ViewGroup,它将是“可打印屏幕”而另一个区域(视图组外)和按钮。

这样您就必须执行相同的操作,但使用viewGroup代替content