/ / Android - dessiner bitmap - Android, toile, bitmap

Android - dessiner bitmap - Android, toile, bitmap

Mon application test Android a une seule activité,LoadImage, avec deux méthodes: une méthode onCreate qui traite les images avec OpenCV et une méthode Display qui affiche l'image à l'écran pendant 5 secondes. Voici ce que j'ai jusqu'à présent pour la méthode Display:

[convert OpenCV matrix to a bitmap using an OpenCV method]

Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(bitmap, 0, 0, null);

try {
synchronized (this) {
wait(5000);
}
} catch (InterruptedException e) {
}

et voici le fichier XML pour la seule activité (c'est un écran vide):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</RelativeLayout>

Si je lance le code tel quel, je reçois ... un écran vide. Comment faire en sorte que les bitmaps apparaissent?

Merci beaucoup.

Réponses:

1 pour la réponse № 1

Essaye ça:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"/>
</RelativeLayout>

Et faites ceci dans votre code java:

onCreate()
{
ImageView imageView = (ImageView) findViewById(R.id.imageView1);
}

Vous envoyez le bitmap à la toile, n'est-ce pas?

Alors faites ceci dans votre méthode où vous dessinez dans le bitmap.

imageView.setImageBitmap(bitmap);

Vous ne pouvez pas définir le canevas directement sur imageView1.

Parce que, comme vous le savez dans la vraie vie, la toile n’est qu’un pinceau. De la même manière, ici aussi, la toile n'est qu'un pinceau. alors ne vous inquiétez pas pour cela.votre image modifiée est maintenant stockée dans le bitmap seulement. Donc c'est pourquoi vous pouvez directement définir le bitmap après édition par canvas.


0 pour la réponse № 2

J'ai ajouté ceci à mon acitity_main.xml (c'était LinearLayout):

<ImageView
android:id="@+id/imageView1"
android:layout_width="200px"
android:layout_height="200px"
android:layout_marginLeft="2dp"/>

et ce code à la méthode OnCreate pour l'activité de ce même XML:

Bitmap bitmap = BitmapFactory.decodeFile(fileAndPath);
mImageView = (ImageView) findViewById(R.id.imageView1);
mImageView.setImageBitmap(bitmap);

l'image bitmap apparaît et reste à l'écran. Merci à l'affiche ci-dessus