从LinearLayout获取屏幕截图

时间:2013-05-08 09:03:44

标签: android android-layout android-linearlayout

我有一个LinearLayout,其中包含很多包含LinearLayouts的子TextViews。我想从父LinearLayout获取屏幕截图,以全面查看我的“收据”。所以我试着这样做:

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

问题是位图b获得null值。

有解决方法吗?

2 个答案:

答案 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()函数,该函数不起作用。 它应该在这一步之后调用它。