0

我有一个LinearLayout包含很多LinearLayouts包含TextViews. 我想从父母那里得到一张截图,LinearLayout以全面了解我的“收据”。所以我试着这样做:

View v = findViewById(R.id.llReceipt);
v.setDrawingCacheEnabled(true);
Bitmap b = v.getDrawingCache();

问题是 Bitmap b 得到一个null值。

有什么办法可以解决吗?

4

2 回答 2

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;
}

取自这里

于 2013-05-08T09:06:04.420 回答
0

我发现了我的问题:我getScreenShot()onCreate()不起作用的函数中调用了函数。它应该在这一步之后调用它。

于 2013-05-08T09:28:50.050 回答