Eigene ImageView mit übereinanderlegbaren Bildern

  • 1 Antworten
  • Neuester Beitrag
Diskutiere Eigene ImageView mit übereinanderlegbaren Bildern im Android App Entwicklung im Bereich Betriebssysteme & Apps.
U

Unicate

Erfahrenes Mitglied
Hallo alle zusammen!

Ich habe Frage, dazu muss ich das Problem genauer beschreiben.
Basiselement meiner View ist eine ListView, welche viele Listeneinträge anzeigen soll. In jeder Zeile dieser ListView, gibt es grafische Elemente, welche dynamisch auf die Zeile eingefügt werden. Für diesen Fall habe ich ein einfaches LinearLayout mit einer horizontalen Orientierung, als Zeilenlayout verwendet und füge dynamisch ImageView's ein, welche dann auch wie gewünscht nebeneinander angezeigt werden. Mein Problem ist nun, das es Grafiken gibt die übereinander liegen müssten. Im einfachsten Fall würde ich nun sagen, das ich ein FrameLayout oder ein RelativeLayout anstatt einer ImageView verwende, welche ich wiederrum mit einer ImageView fülle. Das würde sicher funktionieren aber ist nicht sehr schön und vorallem nicht performant. Besser wäre es, wenn ich mir eine eigene View schreibe, die das handelt.

So weit so gut, ist ja nicht so schwer, und nun fing ich an.
Problem ist die onMeasure - Frage.
Ich kann da jetzt nicht die Höhe und Breite der Bitmap zurückgeben, denn das wäre falsch. Woher weiß ich denn, wie Android die Bilder skalieren würde?

Im Anhang gut zu erkennen, links die einzelnen Grafiken (rot,blau) daneben was rauskommen soll mit RelativeLayout und danach nocheinmal im FrameLayout.

Wenn ich das mit meiner eigenen View mache, dann wird diese zu groß.

Irgendwie muss ich doch hier die DisplayMetrics reinrechnen. Wie mach ich das?
 

Anhänge

U

Unicate

Erfahrenes Mitglied
Ich nahm an:
Unicate schrieb:
Ich kann da jetzt nicht die Höhe und Breite der Bitmap zurückgeben, denn das wäre falsch.
was sich als falsch rausstellte. Ich kam zu dieser Vermutung, weil mir der Editor, die Grafik meiner eigenen View größer anzeigte, als die anderen.

Als ich das auf dem Gerät versuchte, war alles ok. D.h. bei onMeasure setze ich nun einfach die Höhe und Breite der zu zeichnenden Bitmap und der kümmert sich dann selbst um die Skalierberechnung.