AnnaBauer21
Neues Mitglied
- 2
Hallo Leute,
ich habe ein kleines Problem mit zwei ImageViews.
Ich hoffe ihr könnt den Thread einigermaßen lesen, die Vorschau mag irgendwie keine Leerzeilen
Folgendes:
1. Ich bekomme über USB Daten und anhand bestimmter Bytes wird erkannt ob es sich um Bild Typ1 oder Bild Typ2 handelt
2. Die Daten werden in ein Array geschrieben und mit einem Hinweis (String), um welchen Typ es sich handelt, an einen Handler übergeben
3. Im Handler wird ein Bitmap aus den übergebenen Daten erzeugt und an ein Fragment übergeben
4. Im Fragment wird dann in den Setter-Methoden das jeweilige ImageView mit dem Bild befüllt
Das komische ist, angenommen ich übergebe an den Handler 5 Bilder in folgender Reihenfolge (Typ1, Typ2, Typ2, Typ2, Typ1, Typ1):
Aber warum ist das so?
Was ist an meinem Code falsch?
Hoffe ihr könnt mir helfen!
Viele Grüße
Anna
ich habe ein kleines Problem mit zwei ImageViews.
Ich hoffe ihr könnt den Thread einigermaßen lesen, die Vorschau mag irgendwie keine Leerzeilen
Folgendes:
1. Ich bekomme über USB Daten und anhand bestimmter Bytes wird erkannt ob es sich um Bild Typ1 oder Bild Typ2 handelt
2. Die Daten werden in ein Array geschrieben und mit einem Hinweis (String), um welchen Typ es sich handelt, an einen Handler übergeben
Code:
//1.
if (imgMatrix[byteCounter - 2] == 0x5A && imgMatrix[byteCounter - 1] == 0x71){
//2.
DataPackage dataPkg = new DataPackage();
dataPkg.setPackageType("Typ1");
dataPkg.setImage(imgMatrix);
Message m = Message.obtain(handler);
m.obj = dataPkg;
handler.sendMessage(m);
} else if (imgMatrix[byteCounter - 2] == 0x5B && imgMatrix[byteCounter - 1] == 0x72){
//2.
DataPackage dataPkg = new DataPackage();
dataPkg.setPackageType("Typ2");
dataPkg.setImage(imgMatrix);
Message m = Message.obtain(handler);
m.obj = dataPkg;
handler.sendMessage(m);
}
3. Im Handler wird ein Bitmap aus den übergebenen Daten erzeugt und an ein Fragment übergeben
Code:
private final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
dataPkg = (DataPackage) msg.obj;
bmp.setPixels(dataPkg.getImage(), 0, 800, 0, 0, 800, 600);
if (dataPkg.getPackageType() == "Typ1") {
fragment1.setBitmapTyp1(bmp);
} else if (dataPkg.getPackageType() == "Typ2" ) {
fragment1.setBitmapTyp2(bmp);
}
}
};
4. Im Fragment wird dann in den Setter-Methoden das jeweilige ImageView mit dem Bild befüllt
Code:
public void setBitmapTyp1t(Bitmap bmp) {
iView1.setImageBitmap(bmp);
}
public void setBitmapTyp2(Bitmap bmp) {
iView2.setImageBitmap(bmp);
}
Das komische ist, angenommen ich übergebe an den Handler 5 Bilder in folgender Reihenfolge (Typ1, Typ2, Typ2, Typ2, Typ1, Typ1):
- Typ1 wird nur beim ImageView von Typ1 dargestellt
- Typ2 wird bei beiden ImageViews von Typ1 und Typ2 dargestellt
- Typ2 wird nu beim ImageView von Typ2 dargestellt
- Typ2 wird nu beim ImageView von Typ2 dargestellt
- Typ1 wird bei beiden ImageViews von Typ1 und Typ2 dargestellt
- Typ1 wird nur beim ImageView von Typ1 dargestellt
Aber warum ist das so?
Was ist an meinem Code falsch?
Hoffe ihr könnt mir helfen!
Viele Grüße
Anna
Zuletzt bearbeitet: