Dis*_*Dev 5 android android-view
我正在尝试截取LinearLayout的内容.布局包含一个可以高度/宽度可变的滚动视图.当布局不是太大时(即您不需要在屏幕上滚动很多以查看所有内容),此代码可以正常工作:
View v1 = (LinearLayout)theLayout;
v1.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试捕获的LinearLayout很大,则应用程序在v1.getDrawingCache()上使用空指针崩溃.
logcat中有一个错误:
05-11 13:16:20.999:W/View(17218):视图太大而无法适应绘图缓存,需要4784400字节,只有3932160可用
如何正确截取此布局的屏幕截图?还有另一种方法可以解决它没有使用如此多的内存吗?
Dis*_*Dev 13
以下是最终为我捕捉大屏幕外视图的全部内容:
public static Bitmap loadBitmapFromView(View v)
{
Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
Run Code Online (Sandbox Code Playgroud)
它类似于这里的答案,除了我使用视图的宽度/高度来创建位图
| 归档时间: |
|
| 查看次数: |
10726 次 |
| 最近记录: |