以下是代码的摘录。我可以编译它,但程序在手机/模拟器上崩溃。
Bitmap bitmap;
View v1 = MyView.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
String path = Images.Media.insertImage(getContentResolver(), bitmap,
"title", null);
Uri screenshotUri = Uri.parse(path);
final Intent socialIntent = new Intent(Intent.ACTION_SEND);
socialIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
socialIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
socialIntent.setType("image/png");
任何人都知道该怎么做?我想捕捉截图并让用户分享它,如果他/她喜欢。其他一切都有效,这只是我无法获得的截图。
答案 0 :(得分:0)
获取屏幕截图的唯一方法是直接访问内核级别的帧缓冲区,这反过来需要root访问来完成此操作并从那里获取数据以构成图形这就是屏幕本身。
这需要一个用于此目的的modded ROM或具有root权限。索尼,我知道,这样做,他们有这样的设施,没有根,因为ROM被修改,在电源菜单中,有一个选项'截图'。 CM是另一个需要root的。
ICS中有一个提供程序化API的工具可以执行此操作,请参阅此answer,但对于早期版本,您运气不佳。