3 回答
TA贡献1846条经验 获得超7个赞
其实我找到了答案:
public static Bitmap loadBitmapFromView(View v, int width, int height) {
Bitmap b = Bitmap.createBitmap(width , height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
TA贡献1801条经验 获得超8个赞
ScrollView iv = (ScrollView) findViewById(R.id.scrollView);
Bitmap bitmap = Bitmap.createBitmap(
iv.getChildAt(0).getWidth(),
iv.getChildAt(0).getHeight(),
Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bitmap);
iv.getChildAt(0).draw(c);
// Do whatever you want with your bitmap
saveBitmap(bitmap);
TA贡献1858条经验 获得超8个赞
在我的情况下,使用@softwaresupply答案会导致问题,我的视图被重新绘制并变得完全白了。有一种更简单的解决方案来获取屏幕快照,您甚至不必提供宽度和高度作为参数。使用工程图缓存。
public static Bitmap loadBitmapFromView(View v) {
Bitmap bitmap;
v.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v.getDrawingCache());
v.setDrawingCacheEnabled(false);
return bitmap;
}
- 3 回答
- 0 关注
- 444 浏览
添加回答
举报