我过去常常通过获取 Activity 的内容
View 并绘制它来捕捉 Activity 的位图:
View view = activity.findViewById(android.R.id.content)
Bitmap bitmap = Bitmap.createBitmap(
view.getWidth(), view.getHeight(), Config.ARGB_8888
);
view.draw(new Canvas(bitmap));
现在我使用的是 ActionBar,它没有嵌套在 content
View 下,因此将其排除在外。如何获得真实 Root View ?或者用其他方式用操作栏拍照(如果不可能的话)?
最佳答案
要获取整个窗口(包括 ActionBar)的位图,您可以使用 DecorView。
首先您需要启用绘图缓存
getWindow().getDecorView().setDrawingCacheEnabled(true);
获取位图
Bitmap bmp = getWindow().getDecorView().getDrawingCache();
在其他地方使用位图,我用 ImageView 尝试了这一点,效果很好。
禁用绘图缓存
getWindow().getDecorView().setDrawingCacheEnabled(false);
关于Android: Root View 的快照(带有 ActionBar),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11371777/