German Titelgrafik verzerrt dargestellt

umsid

Member
Licensed User
Longtime User
Hallo Community,

als Anfänger hätte ich mal eine Frage:

Ich möchte eine Titelgrafik auf allen meinen Screens einer App darstellen.

Wenn ich die Grafik klein mache, damit Sie für ein Handy passen, dann wird sie auf dem Tablet entsprechend vergrößert und nicht mehr schön dargestellt.

Wenn ich Sie in ein ImageView per ImageView lade, und dieses Imageview jetzt aber horizontal mit "Both" Anker versehe, dann wird auf einem großen Display wohl die Breite verändert, die Höhe aber nicht.

Das wäre für mich sogar ok, aber die Funktion "Fill" bei Grafity bewirkt, dass die Grafik immer EINGEPASST wird - also in X und Y Richtung gestreckt wird, bis das ImageView ausgefüllt ist.

Kann man über eine Funktion festlegen, dass dabei das Seitenverhältnis der Grafik beibehalten bleiben soll, oder muss man das alles "zu Fuß" machen, also die aktuelle Breite des IV (ImageViews) auslesen, die Grafik Breite und Höhe auslesen bzw. berücksichtigen und dann die Höhe händisch setzen?

Wie macht ihr das, dass eine Titelgrafik nicht verzerrt abgebildet wird?

vg
Guenter
 

umsid

Member
Licensed User
Longtime User
Hallo Klaus,
danke für die ehrliche Antwort ;-)

Ich denke, dass es für Erel keine große Geschichte wäre, neben Fill noch ein "Fill sync" für eine synchronisierte (x-y) Ausgabe einzubinden.

Wie rechnest Du denn die X-Y Auflösung des Bildes aus?
Gibt's da eine Funktion?
Mit imageView.Bitmap lade ich das Bild in das IV.
Prüfst Du dann erst mit graphis.Bitmap Funktionen die Dimensionen des Bildes ab?

vg
Guenter
 

klaus

Expert
Licensed User
Longtime User
Ich habe mir dein Problem noch mal näher angeschaut denn es gibt neuere Möglichkeiten die ich noch nocht benutzt hatte.
Die beste Möglichkeit ist LoadBitmapResize.
Da kannst du folgendes angeben.
Bild, Ordner und Name
Breite und Höhe des ImageView und Breite /Höhe / Verhältniss beibehalten.
Beiliegend ein kleines Testprogramm das mehr erklärt als ein langer Text.
Das Bild habe Ich sehr verkleinert 600 * 400 Pixel damit man das Projekt im Forum hochladen kann.
Ich habe es mit dem Originalbild (6000 * 4000 Pixel) getestet, funktioniert auch.
Die rosa Panels sind nur da um zu veranschaulichen wie die Höhe und Breite der ImageViews behandelt werden, sie haben die gleiche Grösse wie die original ImageViews.
Im oberen Bild ist die Breite grösser und im unteren Bild ist es die Höhe.
Wenn man das Breite /Höhe / Verhältniss beibehaltet wird die grössere Seite verkleinert.

Ich habe keine Speichertests gemacht.
Wenn du sehr grosse Bilder im Files Ordner des Projektes (File.DirAssets) hast wirst Du Speicherproblem bekommen.
Denn die vollen Bilder werden in die Projekt Datei mit eingebunden, deswegen habe ich das Bild verkleinert.
Das heisst, die grossen Bilder müssen irgendwo anders gespeichert werden.
Das habe ich nicht getestet.

upload_2017-9-11_20-43-19.png
 

Attachments

  • TestBitmapSize.zip
    65.2 KB · Views: 308

umsid

Member
Licensed User
Longtime User
Hallo Klaus,
genau das ist das, was ich gesucht habe.
Es wäre natürlich super, wenn im Designer bei ImageView Properties einfach nur der Hacken für Seitenverhältnis beibehalten "true" wäre. Dann bräuchte man dazu keine Codezeilen und könnte sowas direkt im Designer mit festlegen.

Vielen Dank
Guenter
 
Top