我已经看过可能在

Android上以编程方式捕获屏幕(屏幕截图,screendump)的所有SO文章,他们通常都会得到相同的答案.

它的问题在于它捕获了您指定的View,但它不捕获可能“在”根视图“之上”的任何Dialog.这是我使用的代码,无法捕获任何“在顶部”:

Bitmap bitmap;

View v1 = findViewById(android.R.id.content);

v1.setDrawingCacheEnabled(true);

bitmap = Bitmap.createBitmap(v1.getDrawingCache());

v1.setDrawingCacheEnabled(false);

File path = Environment.getExternalStorageDirectory();

File file = new File(path, "myDump.jpg");

FileOutputStream outputStream;

try

{

outputStream = new FileOutputStream(file);

bitmap.compress(Bitmap.CompressFormat.JPEG, 10, outputStream);

outputStream.flush();

outputStream.close();

}

catch (Exception e)

{

e.printStackTrace();

}

问题是:如何捕获整个屏幕,包括顶部的对话框?我只对捕获我正在编写的应用程序感兴趣,而不是主屏幕或类似的东西,只是在我的根视图之上的任何内容.

我确实读过一些关于root的内容,但我真的希望在我写的应用程序的完整screendump是不可能的.

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐