2013-02-19 10 views
5

Sto ricevendo il famigerato errore OpenGLRenderer che "Bitmap too large to be uploaded into a texture." ho familiarità con l'errore e so che ho bisogno di mantenere le mie immagini sotto 2048 pixels per evitarlo.Bitmap a errore di grandi dimensioni si lamenta circa il doppio della dimensione dell'immagine

Tuttavia, su un telefono specifico, il Samsung Galaxy Nexus, sta segnalando le dimensioni dell'immagine che sono il doppio della dimensione effettiva dell'immagine.

La mia immagine è nella cartella drawable e ha una dimensione di 2048x95. Quando eseguo l'applicazione e tentare di aggiungere l'immagine alla visualizzazione, ottengo l'errore infame:

Bitmap too large to be uploaded into a texture (4096x190, max=2048x2048)

Che cosa dà?

risposta

5

Se l'immagine si trova nella cartella estraibile, verrà ridimensionata in base alla densità appropriata in base al dispositivo. Ciò significa che per i dispositivi mdpi, l'immagine sarà delle dimensioni appropriate, ma per hdpi, xhdpi e xxhdpi l'immagine sarà molto più grande di quanto si pensi e i dispositivi ldpi saranno più piccoli.

Se non si desidera che l'immagine si riduca come quella sul Galaxy Nexus, posizionarla nella cartella Drawable-xhdpi.

+2

Il '-nodpi' potrebbe essere una scelta migliore per immagini indipendenti dalla densità come gl trame. O se sta caricando con un 'BitmapFactory' può impostare il parametro' inScaled' su false. – Jave

+0

Sì, '-nodpi' sarebbe davvero meglio se cercasse di usare la sua bitmap con OpenGL. Non ero sicuro se fosse quello che stava facendo, dato che se caricassi QUALSIASI bitmap su tutti i 2048px, riceverai l'errore 'OpenGLRenderer' dal momento che il sistema usa OpenGL per disegnare. – MCeley

+0

Grazie Jave, stavo ottenendo un errore simile e il parametro inScaled mi ha aiutato molto. – Soham