我想以编程方式获取Android设备的屏幕截图。我搜索了很多东西,但无论我在哪里发现,都说你的设备应该是root用户,或者只有你可以截取你的应用程序的屏幕截图,即如果你的应用程序在后台,那么它不会截取主屏幕截图。 / p>
简而言之,我想要截图,它可以让我看到屏幕上用户可以看到的内容。我自己的应用程序可能在后台。
答案 0 :(得分:0)
要获取屏幕截图,您需要获取视图的根布局
getWindow().getDecorView();
将视图缓存到位图
public static File getScreenShot(Context context,View parentLayout)
{
parentLayout.setDrawingCacheEnabled(true);
Bitmap cachedBitmap= parentLayout.getDrawingCache();
Bitmap finalBitmap = cachedBitmap.copy(Bitmap.Config.RGB_565, true);
return saveBitmap(context,finalBitmap);
}
将位图保存在设备上或
private static File saveBitmap(Context context,Bitmap bitmap)
{
File snapShot=null;
try
{
String cacheDirectory=getCacheDirectory(context);
snapShot=new File(cacheDirectory, "Screenshot.png");
FileOutputStream out = new FileOutputStream(snapShot);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
} catch (Exception e)
{
e.printStackTrace();
}
return snapShot;
}