Sto tentando di acquisire uno screenshot del contenuto di un LinearLayout. Il layout contiene una scrollview che può essere di altezza/larghezza variabile. Questo codice funziona bene quando il layout non è troppo grande (vale a dire che non è necessario scorrere molto fuori dallo schermo per vedere tutto):Visualizza troppo grande per adattarsi alla cache di disegno quando si chiama getDrawingCache()
View v1 = (LinearLayout)theLayout;
v1.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
Tuttavia, se il LinearLayout che sto cercando di catturare è di grandi dimensioni , quindi l'applicazione si blocca con un puntatore nullo su v1.getDrawingCache().
C'è un errore nel logcat:
05-11 13: 16: 20,999: W/View (17218): Vista troppo grande per entrare in disegno cache, bisogna 4784400 byte, solo 3.932.160 disponibili
Come posso prendere correttamente uno screenshot di questo layout? C'è un altro modo per farlo che non usa così tanta memoria?
http://stackoverflow.com/questions/9791714/take-a-screenshot-of-a-whole-view. controlla la risposta di kameltreiber – Raghunandan
Grazie - ho dovuto modificare leggermente la soluzione su quella risposta, ma l'ho fatta funzionare! – DiscDev