2012-07-19 8 views
6

このコードには何がありませんか?この同じコードはICSで動作します。 API 8では、スクロールが表示され、一部のコンテンツは画面から消えます。この場合、描画キャッシュを取得する方法は?`getDrawingCache`を呼び出すと、スクロールが有効になったときにnullが返されます

コード:

TableLayout page = (TableLayout) findViewById(R.id.page); 
page.setDrawingCacheEnabled(true); 
page.buildDrawingCache(); 

// getDrawingCache returns null... 
Bitmap pageBmp = Bitmap.createBitmap(page.getDrawingCache(true)); 
page.destroyDrawingCache(); 
page.setDrawingCacheEnabled(false); 
+0

可能な複製を使用し

TableLayout page = (TableLayout) findViewById(R.id.page); Bitmap pageBmp = Bitmap.createBitmap(page.getWidth(), page.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(pageBmp); page.draw(canvas); 

-null-only-null) –

+0

類似したhttp://stackoverflow.com/questions/2339429/android-view-getdrawingcache-returns-null-only-null –

答えて

17

私はそれを解決しました。ビューサイズのビットマップを作成し、そのビューを描画しました。 pageBmpビットマップ.. [アンドロイドView.getDrawingCacheはnullを返し、唯一のヌル](http://stackoverflow.com/questions/2339429/android-view-getdrawingcache-returnsの

+0

10x多くの人、私はビットマップにいくつかの問題があった、それはいつもあなたが最初に試した方法と似たようなものがありますが、このコードは私のプロジェクトを保存しました:D完璧に動作します –

+0

恐ろしいハックの男....問題を解決しました。これは、scrollViewが存在する場合、getDrawingCache()が機能しないため、スクロールビューを親として使用しているユーザーにとっては本当に役立ちます。 –

関連する問題