5

我正在使用以下(清除的)代码来拍摄“屏幕截图” action_send。一切正常,唯一的问题是图像不包含状态栏。我知道为什么,我只是不知道该怎么办。有什么方法可以通过编程方式裁剪图像,或者在拨打电话之前设置某种边界getDrawingCache()

提前致谢!

View v1 = findViewById(android.R.id.content).getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap screenshot = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);

String path = Images.Media.insertImage(getContentResolver(), screenshot, "title", null);
Uri screenshotUri = Uri.parse(path);

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("image/png");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);

startActivity(Intent.createChooser(sharingIntent, "Share image using"));
4

2 回答 2

3

您可以在发送之前尝试在屏幕截图上使用Bitmap.createBitmap 。

Bitmap cropimg = Bitmap.createBitmap(originalImg, 0, 0, originalImg.width(), originalImg.height() - x)

'x' 是Integer在这种情况下从图像底部裁剪的像素数。您可以进行某些修改并相应地裁剪以满足您的要求。

希望能帮助到你

于 2012-07-19T08:46:12.990 回答
0

问题是您没有像这样截取屏幕截图,而是获取应用程序的当前图像。这不能包括状态栏,因为它不是您的应用程序的一部分,也不能向上扩展绘图区域以捕获状态栏。

于 2012-07-19T08:50:22.247 回答