2012-07-19 18 views
6

इस कोड में क्या गुम है? यह कोड आईसीएस पर काम करता है। एपीआई 8 पर स्क्रॉल प्रकट होता है और कुछ सामग्री स्क्रीन से बाहर हो जाती है। इस मामले में ड्राइंग कैश कैसे प्राप्त करें?स्क्रॉल सक्षम होने पर 'getDrawingCache` को वापस लौटाता है

कोड:

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

की [एंड्रॉयड View.getDrawingCache रिटर्न अशक्त, केवल अशक्त] संभावित डुप्लिकेट (http://stackoverflow.com/questions/2339429/android-view-getdrawingcache-returns -नूल-ओन-नल) –

+0

इसी तरह के http://stackoverflow.com/questions/2339429/android-view-getdrawingcache-returns-null-only-null –

उत्तर

17

मैं इसे हल किया। दृश्य आकार का एक बिटमैप बनाया और इसमें दृश्य खींचा।

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

प्रयुक्त pageBmp बिटमैप ..

+0

10x बहुत आदमी, मुझे बिटमैप के साथ कुछ समस्याएं थीं, यह था हमेशा शून्य, जैसा कि आपने पहली बार कोशिश की थी, लेकिन इस कोड ने अभी मेरी परियोजना को सहेजा है: डी यह बेकार –

+0

बहुत बढ़िया हैक दोस्त .... मेरी समस्या हल हो गई। यह वास्तव में उन लोगों की सहायता करेगा जो स्क्रॉलव्यू को माता-पिता के रूप में उपयोग कर रहे हैं क्योंकि scrollDiew मौजूद होने पर getDrawingCache() काम नहीं करता है। –

संबंधित मुद्दे