我有一个LinearLayout
,其中包含很多包含LinearLayouts
的子TextViews
。我想从父LinearLayout
获取屏幕截图,以全面查看我的“收据”。所以我试着这样做:
View v = findViewById(R.id.llReceipt);
v.setDrawingCacheEnabled(true);
Bitmap b = v.getDrawingCache();
问题是位图b获得null
值。
有解决方法吗?
答案 0 :(得分:0)
我不知道为什么你的位图为空但我之前使用过这个位来获取自定义视图的屏幕截图并且它有效:
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;
}
取自here!
答案 1 :(得分:0)
我发现了我的问题:
我从getScreenShot()
函数中调用了onCreate()
函数,该函数不起作用。
它应该在这一步之后调用它。