3 回答

TA貢獻1846條經(jīng)驗 獲得超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條經(jīng)驗 獲得超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條經(jīng)驗 獲得超8個贊
在我的情況下,使用@softwaresupply答案會導致問題,我的視圖被重新繪制并變得完全白了。有一種更簡單的解決方案來獲取屏幕快照,您甚至不必提供寬度和高度作為參數(shù)。使用工程圖緩存。
public static Bitmap loadBitmapFromView(View v) {
Bitmap bitmap;
v.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v.getDrawingCache());
v.setDrawingCacheEnabled(false);
return bitmap;
}
- 3 回答
- 0 關(guān)注
- 458 瀏覽
添加回答
舉報