Je fais une application dans laquelle je reçois une image MJPG de la caméra IP en direct dans Android.
Le problème est que depuis quand je reçois l'image sous la forme de J'utilise le code suivant pour afficher l'image: p> mais im GetIning une exception p> byTeArray code>. Comment puis-je afficher l'image
code>? P>
android.view.ViewRoot CallFromWrongThreadException
5 Réponses :
Lorsque vous faites de la vue, le travail connexe, faites-le toujours à partir de l'écran de l'interface graphique. Utilisez donc Le fil qui a créé la hiérarchie de vue code>. p>
gestionnaires code> pour y parvenir. p>
Vous devez utiliser RunonUthread () pour mettre à jour les vues d'autres threads. P>
L'exception Votre problème n'est donc pas que votre code pour créer l'image est faux, mais que vous le faites au mauvais endroit.
Si vous par exemple. Exécutent l'image en arrière-plan dans un Sans voir plus de code, nous ne pouvons pas vous aider plus. P> CallFromwrongthreadException code> signifie que vous avez essayé de mettre à jour l'interface utilisateur d'un fil qui n'est pas le fil de l'interface utilisateur et qui n'est pas autorisé. P>
asyncktask code>, vous devez
setImageBitMap () code> dans
postexecute () code> et non dans
doInbackground () code>. p>
ImageView tv1; tv1= (ImageView) findViewById(R.id.image); InputStream si1 = asset.open("image/" + cat_arr1[i] + ".png"); Bitmap bitmap1 = BitmapFactory.decodeStream(si1); tv1.setImageBitmap(bitmap1);
View mImg = findViewById(R.id.image_from_gallery); ((ImageView) mImg).setImageBitmap(bitmap); This worked for me.