Grafiken für verschiedene Screen Größen /Auflösungen

  • Hi,


    Ich bin was Design angeht ziemlich unerfahren...


    Wie kann man verhindern dass sich ein Bild/Animation auf verschiedenen Geräten verändert.
    Also verpixelt oder kleiner/grösser wird.


    Ich hab mich mal informiert und bin auf Vektorgrafiken gestosen. Diese sollen aber den Nachteil haben, dass sie nur "einfache" Bilder darstellen können.
    Ausserdem kann ich das Vektorgrafik format glaub ich nicht in Spriter animieren.
    Mit flash dragon bones kann man ja die animation auch als Vektorgrafik exportieren, aber das kostet geld.


    Oder gibt es noch andere Wege Veränderung von Bildern zu verhindern ?(


    Danke im voraus :D :thumbup:

  • Du kannst dir hier https://github.com/asystat/Final-Android-Resizer herunterlade, das Tool erstellt dir dann die verschiedenen Bilder.


    Ich habe dazu aber eine Frage, damit man die App nicht aufbläht mit Bildern, könnte man die Bilder nicht auch mittels Funktion auf die Größe anpassen oder macht man das nicht wegen Rechenleistung/Akkuverbrauch?



    Beispiel:


    Aufruf Beispiel:


    Java
    ImageView view = (ImageView) findViewById(R.id.imageView1);
    view.setImageBitmap(showBitmap(R.drawable.test));

    Die test.png in den Ordner drawables-nodpi packen.

  • Ich habe dazu aber eine Frage, damit man die App nicht aufbläht mit Bildern, könnte man die Bilder nicht auch mittels Funktion auf die Größe anpassen oder macht man das nicht wegen Rechenleistung/Akkuverbrauch?

    Das tut es schon, aber man kann eben keine Bildinformation schaffen, wo keine ist. Zu stark skalierte Bilder sehen einfach blöd aus. Deswegen sollten sie gleich in ungefähr passender größe beigelegt werden. Kleine skalierungen erledigt das System dann von allein.

  • Das tut es schon, aber man kann eben keine Bildinformation schaffen, wo keine ist. Zu stark skalierte Bilder sehen einfach blöd aus. Deswegen sollten sie gleich in ungefähr passender größe beigelegt werden. Kleine skalierungen erledigt das System dann von allein.

    Wenn du die aber mal meine Funktion ansiehst, dann sollte auffallen das ich ja die "größste" Bilder vorgeben und sie dann runter rechne/skaliere
    Zitat: // durch 3 deshalb weil ich von einer xxhdpi ausgangen bin (Baseline wäre mdpi mit Faktor 1 => xxhdpi Faktor 3), um das Bild nicht zu verpixeln


    Also sollten dann Bildinformationen da sein;)

  • das ist schon richtig, aber das runterskalieren von großen bildern kostet wiederum vermehrt ressourcen. Dafür hab ich nun keine quelle, aber das ist der einzige Grund der mir einfällt warum nicht einfach große bilder beigelegt werden können die dann immer klein skaliert werden.

  • auch wenn es alt ist habe ich ein paar Fragen dazu...


    Ich arbeite über eine eigen erstellte View, meine Bilder speicher ich in der drawable, meine Idee ist es das ich sozusagen 4 verschiedene Größen der Bilder habe und durch die Formel "Spieler = HEIGHT / 10" auf die passemde Größe des Players komme, da aber es nicht 4 Geräte Größen gibt skaliere ich die Bilder passend damit bei allen Geräten verschiedener Ausflösungen und Größen der Player im Verhältniss gleich groß ist.


    Erscheint dieses logisch und klug ?
    Und welche Bildschirmgrößen sind vertretten von klein bis groß (Smartphones) ?

  • Also hat jedes Handy einer dieser 4 Größen und Android sucht sich dann die bestimmte Größe aus oder wie ?

    • xlarge screens are at least 960dp x 720dp
    • large screens are at least 640dp x 480dp
    • normal screens are at least 470dp x 320dp
    • small screens are at least 426dp x 320dp

    Aber wie soll das Funktionieren ?
    Bei mir ist es so ich habe ein Spiel und das Spielfeld besteht aus Tiles und die Höhe des Spielfeldes sind immer 10 Tiles heisst das die Tiles so groß sein müssen, dass sie immer den ganzen Bildschirmen ausmalen, aber woher weiss Android welches Bild genommen werden muss ?

  • Sorry aber ich verstehe das noch nicht ganz alles mit dp, dpi und den pixeln.


    Schlussfolgerung: meine Tiles Größen sind dann 32dp, 48dp und 72dp stimmts ? Aber das ist dann ja auch mit den Bildern wieder anders, da dort die Größen in pixeln sind....


    Kannst mir da vllt weiterhelfen ?

  • Also hat jedes Handy einer dieser 4 Größen und Android sucht sich dann die bestimmte Größe aus oder wie ?

    • xlarge screens are at least 960dp x 720dp
    • large screens are at least 640dp x 480dp
    • normal screens are at least 470dp x 320dp
    • small screens are at least 426dp x 320dp

    Aber wie soll das Funktionieren ?
    Bei mir ist es so ich habe ein Spiel und das Spielfeld besteht aus Tiles und die Höhe des Spielfeldes sind immer 10 Tiles heisst das die Tiles so groß sein müssen, dass sie immer den ganzen Bildschirmen ausmalen, aber woher weiss Android welches Bild genommen werden muss ?

    Korrekt, jedes handy ist entweder ldpi, mdpi, hdpi, xhdpi, oder xxhdpi. Du brauchst Bilder die ungefährt dieser relation entsprechen und android skaliert den rest durch die angabe deiner dp größe im quellcode.

  • ok alles klar habe ich jetzt mal so probiert mit mein Versuchshandy LG Optimus 4X und es bleibt unten noch eine Lücke die weiss ist also welche nicht ausgefüllt wird.


    Gezeichnet wird alles mit Canvas, muss ich noch was ergänzen damit es skaliert wird ?

  • *emulator


    Bei iOS ist es ein simulator, bei android ein Emulator. Da bekommst du wirklich ein vollwertiges android gerät emuliert, mit dem du sogar sms schreiben etc kannst. Nur WLAN geht nicht, wobei ich immernoch nicht verstehe warum.


    Ich empfehle dir beim Emulator einfach verschiedene Bildschirmgrößen und auflösungen mal durchzuprobieren :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!