Android如何获取截图位图?

时间:2014-05-30 19:30:24

标签: java android screenshot root

要制作屏幕截图,我使用此代码:

Process sh = Runtime.getRuntime().exec("su", null,null);

OutputStream  os = sh.getOutputStream();
os.write(("/system/bin/screencap -p " + "/sdcard/img.png").getBytes("ASCII"));
os.flush();

os.close();
sh.waitFor();

但这很慢!也许是因为手机正在保存此图像。 要获得此位图,我使用以下代码:

bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+         
File.separator +"img.png");

但那很慢!有可能获得位图但不能保存吗?也许它会快得多?

1 个答案:

答案 0 :(得分:1)

这里你去View.getDrawingCache()返回当前绘制的视图表面。

view.setsetDrawingCacheEnabled(true);
final Bitmap screenshot = view.getDrawingCache();
view.setDrawingCacheEnabled(false);    

//use bitmap