0

LinearLayout含む多くのサブLinearLayoutsを含む がありますTextViewsLinearLayout親からスクリーンショットを取得して、「領収書」を完全に表示したいと考えています。だから私はそれをやろうとしました:

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

問題は、ビットマップ b がnull値を取得することです。

それを解決する解決策はありますか?

4

2 に答える 2

0

ビットマップが 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;
}

ここから撮影!

于 2013-05-08T09:06:04.420 に答える