162 votes

Android Studio Canvas: dessin trop grand bitmap

Je suis sur Ubuntu 16.04. Et sur Android Studio lorsque j'essaie de lancer mon application dans l'émulateur j'obtiens l'erreur suivante:

EXCEPTION FATALE: principal Processus: nom du projet ici, PID: 2528 java.lang.RuntimeException: Toile: en essayant de tirer trop grand(216090000bytes) bitmap. au android.vue.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:260) au android.les graphiques.Toile.drawBitmap(Toile.java:1415) au android.les graphiques.drawable.BitmapDrawable.tirage(BitmapDrawable.java:528) au android.widget de.ImageView.onDraw(ImageView.java:1316) au android.vue.Vue.tirer(à Vue.java:17185) au android.vue.Vue.updateDisplayListIfDirty(point de Vue.java:16167) au android.vue.Vue.tirer(à Vue.java:16951) au android.vue.ViewGroup.drawChild(ViewGroup.java:3727) au android.vue.ViewGroup.dispatchDraw(ViewGroup.java:3513) au android.vue.Vue.updateDisplayListIfDirty(point de Vue.java:16162) au android.vue.Vue.tirer(à Vue.java:16951) au android.vue.ViewGroup.drawChild(ViewGroup.java:3727) au android.vue.ViewGroup.dispatchDraw(ViewGroup.java:3513) à
etc...

J'ai dû courir à travers des cerceaux pour obtenir mon émulateur de travail, cependant, nécessaire de créer un lien symbolique pour que je puisse exécuter l'émulateur sur la DMLA. Pas si sûr que ce est une partie du problème. Et pour la vie de moi je ne peux pas savoir pourquoi il continue à le faire. Dans mon groupe il y a d'autres personnes qui suivent le projet vient de précis sur la même émulé téléphone et le SDK.

294voto

Md Imran Choudhury Points 2536

Déplacez votre image dans le dessin (haute résolution) en drawable-xxhdpi . Mais dans le développement d'applications, vous n'avez pas besoin d'utiliser une grande image. Cela augmentera la taille de votre fichier APK.

15voto

Guy4444 Points 997

J'ai eu le même problème. Si vous essayez de télécharger une image trop volumineuse sur certains appareils à faible résolution, l'application s'effondrera. Vous pouvez créer plusieurs images de différentes tailles (hdpi, xxdpi, etc.) ou simplement utiliser une bibliothèque externe pour charger des images permettant de résoudre le problème rapidement et efficacement. J'ai utilisé la bibliothèque Glide (vous pouvez utiliser une autre bibliothèque comme Picasso).

     panel_IMG_back = (ImageView) findViewById(R.id.panel_IMG_back);
    Glide
            .with(this)
            .load(MyViewUtils.getImage(R.drawable.wallpaper)
            .into(panel_IMG_back);
 

10voto

Francisco Points 437

Il s’est avéré que le problème était l’image principale que nous avions utilisée sur notre application à l’époque. La taille réelle de l'image étant trop grande, nous l'avons compressée. Ensuite, cela a fonctionné comme un charme, aucune perte de qualité et l'application a fonctionné correctement sur l'émulateur.

6voto

Car cette erreur était comme les autres disent une grande image (1800px X 900px) qui était dans le répertoire dessinable, j'ai édité l'image et réduit la taille proportionnellement en utilisant Photoshop et cela a fonctionné ... !!

1voto

pieroxy Points 353

Dans mon cas, j'ai dû supprimer la plate-forme Android et l'ajouter à nouveau. Quelque chose s'est bloqué et copier tout mon code dans une autre application a fonctionné à merveille - d'où mon idée de nettoyer la construction d'Android en supprimant la plate-forme.

 cordova platform remove android
cordova platform add android
 

Je suppose que c'est une sorte de nettoyage que vous devez faire de temps en temps :-(

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X