我有一个LinearLayout
包含很多LinearLayouts
包含TextViews
. 我想从父母那里得到一张截图,LinearLayout
以全面了解我的“收据”。所以我试着这样做:
View v = findViewById(R.id.llReceipt);
v.setDrawingCacheEnabled(true);
Bitmap b = v.getDrawingCache();
问题是 Bitmap b 得到一个null
值。
有什么办法可以解决吗?
我有一个LinearLayout
包含很多LinearLayouts
包含TextViews
. 我想从父母那里得到一张截图,LinearLayout
以全面了解我的“收据”。所以我试着这样做:
View v = findViewById(R.id.llReceipt);
v.setDrawingCacheEnabled(true);
Bitmap b = v.getDrawingCache();
问题是 Bitmap b 得到一个null
值。
有什么办法可以解决吗?
我不知道为什么您的位图为空,但我之前使用过这个位来获取自定义视图的屏幕截图并且它有效:
public Bitmap getBitmapFromView(View view, int width, int height) {
Bitmap returnedBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnedBitmap);
Drawable bgDrawable = view.getBackground();
if (view==mainPage.boardView) {
canvas.drawColor(BoardView.BOARD_BG_COLOR);
} else if (bgDrawable!=null) {
bgDrawable.draw(canvas);
} else {
canvas.drawColor(Color.WHITE);
}
view.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
view.layout(0, 0, width, height);
view.draw(canvas);
return returnedBitmap;
}
取自这里!
我发现了我的问题:我getScreenShot()
从onCreate()
不起作用的函数中调用了函数。它应该在这一步之后调用它。