2

我想将 ScrollView 内的整个滚动布局转换为 Bitmap

<ScrollView...>

<RelativeLayout android:id="@+id/content"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...>

</RelativeLayout>

</ScrollView>

如果内容不滚动,则此代码效果很好:

RelativeLayout content = (RelativeLayout) findViewById(R.id.content);
content.setDrawingCacheEnabled(true);
content.buildDrawingCache();
Bitmap bm = content.getDrawingCache();

但如果内容正在滚动,则getDrawingCache()返回 null。

关于如何将滚动视图导出到位图的任何建议?

4

2 回答 2

1

尝试这个:

Bitmap bitmap = Bitmap.createBitmap(content.getWidth(), content.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
content.draw(canvas);
于 2014-07-11T03:58:59.083 回答
0

我试过了,但没有达到预期的结果——有滚动视图的宽度,但高度只是滚动视图的一部分。

相反,对我有用的是执行以下操作:

Bitmap bitmap = Bitmap.createBitmap(content.getChildAt(0).getWidth(), 
content.getChildAt(0).getHeight(), Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(bitmap);
content.draw(canvas);
于 2020-03-08T21:27:28.160 回答