2012-07-19 16 views
6

Bu kodda eksik nedir? Aynı kod ICS'de çalışır. API 8'de kaydırma görünür ve bazı içerikler ekrandan çıkar. Bu durumda çizim önbelleği nasıl alınır?Kaydır etkin olduğunda `getDrawingCache` çağrısı null değerini döndürür

Kodu:

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

Olası yinelenen (http://stackoverflow.com/questions/2339429/android-view-getdrawingcache-returns -null-only-null) –

+0

Benzer http://stackoverflow.com/questions/2339429/android-view-getdrawingcache-returns-null-only-null –

cevap

17

ben onu çözdüm. Bir görüntü boyutu bitmap oluşturdu ve görünümü içine çekti.

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

el [Android View.getDrawingCache null, sadece null döndürür] arasında pageBmp bitmap ..

+0

10x çok adam, bir bitmap ile bazı problemlerim vardı her zaman null, ilk kez nasıl denediniz gibi bir şey ile, ama bu kod sadece benim proje kurtardı: D Kusursuz çalışıyor –

+0

Başar hack dude .... Benim sorun çözüldü. Bu, scrollView var ise getDrawingCache() çalışmadığından, bir ebeveyn olarak scrollview kullananlar gerçekten yardımcı olur. –

İlgili konular