gpt4 book ai didi

android - 将简单的大 View 保存为位图

转载 作者:行者123 更新时间:2023-11-29 13:58:57 24 4
gpt4 key购买 nike

我动态构建了一个大小为 4022(宽度)x 3779(宽度)的图表的相对布局。然而,该图表仅包含 50-100 个 TextView ,因此结果 .png 很小。这是我用来捕获图表的短代码。

    // chart_container was built dynamically before calling this function:
public void saveBitmap(RelativeLayout chart_container) {
int scale_ratio = 2;
int chartWidth = chart_container.getWidth();
int chartHeight = chart_container.getHeight();
Log.i(TAG, "orignal width:" + chartWidth + ", original height: " + chartHeight);
Bitmap mBitmap = Bitmap.createBitmap(chartWidth / scale_ratio, chartHeight / scale_ratio, Bitmap.Config.ARGB_8888); // crashes when scale_ratio is 1
Canvas mCanvas = new Canvas(mBitmap);
chart_container.draw(mCanvas);
out = new FileOutputStream("/data/data/package/chart.jpeg");
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
}

LogCat 输出:

orignal width:4022, original height: 3779

当“scale_ratio”为 2 时,图表左上四分之一成功保存。文件大小只有 22k。当“scale_ratio”为 1 时,应用程序因“createBitmap”行内存不足而崩溃:

java.lang.OutOfMemoryError: bitmap size exceeds VM budget

有什么好的方法可以保存整个图表吗?非常感谢您的帮助!!!

更新:我通过将 Emulator VM 堆大小增加 10 倍解决了这个问题。现在我有一个完整的图表。

最佳答案

我通过将 Emulator VM 堆大小增加 10 倍解决了这个问题。现在我有了一个完整的图表。

关于android - 将简单的大 View 保存为位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10605162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com