我正在使用以下(清除)代码来获取“屏幕截图”和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"));
答案 0 :(得分:2)
您可以在发送屏幕截图之前尝试使用Bitmap.createBitmap。
Bitmap cropimg = Bitmap.createBitmap(originalImg, 0, 0, originalImg.width(), originalImg.height() - x)
'x'是Integer
,是在这种情况下从图像底部裁剪的像素数。您可以进行某些修改并根据您的要求裁剪。
希望有所帮助
答案 1 :(得分:0)
问题是您没有截取屏幕截图,而是获取应用程序的当前图像。这不能包含状态栏,因为它不是您的应用程序的一部分,也不能向上扩展绘图区域以捕获状态栏。