【发布时间】:2015-10-11 16:28:54
【问题描述】:
我正在尝试保存我当前活动的屏幕截图,但不是整个视图,只是其中的一部分。 就我而言: My activity
在附加的图像中,我想保存一个由视图 B、C 和 D 构建的位图。
B是线性布局,C是纯位图,D是相对布局。
据我了解,一种方法是创建一个画布,将所有“元素”添加到其中,最后获得所需的自定义位图。
以下代码有问题:
iViewBHeight= viewB.getHeight();
// Prepare empty bitmap as output
Bitmap result = Bitmap.createBitmap(bitmapC.getWidth(),bitmapC.getHeight() + iViewBHeight, Config.ARGB_8888);
// Flush source image into canvas
Canvas canvas = new Canvas(result);
// Draw bitmap C to canvas 'under' view B
canvas.drawBitmap(bitmapC, 0, iViewBHeight, null);
// Draw view B to canvas
viewB.setDrawingCacheEnabled(true);
viewB.buildDrawingCache(true);
canvas.drawBitmap(Bitmap.createBitmap(viewB.getDrawingCache()), 0, 0, null);
viewB.setDrawingCacheEnabled(false);
// Desired bitmap is at 'result'
结果是位图C画好了,但是视图B太大,扩展了位图。 我没有尝试添加视图 D..
谁能帮帮我?也许有更好的方法来实现我的目标? 谢谢!
【问题讨论】:
-
感谢您的评论 Tauqir,第一个链接解决方案截取了我不需要的整个屏幕的屏幕截图。秒一个对我不起作用。
-
请张贴您的 xml 截图。
标签: android android-layout bitmap android-canvas screenshot