Android Bildschirmauflösung & Pixeldichte

A

androidBerry

Neues Mitglied
1
Hi,

ich habe eine Anwendung entwickelt, die nur auf Tablets (ab 7-Zoll) laufen soll. Jetzt habe ich gefühlte 100 verschiedene Emulatoren erstellt und diese auf den unterschiedlichen Emulatoren ausgeführt.

Dabei habe ich leider festgestellt, dass die Pixeldichte das Aussehen meiner App enorm beeinflussen kann. Zum Beispiel, ich habe einen 7-Zoll-Emulator mit einer Dichte ldpi,hdpi,mdpi und xhdpi, nun werden natürlich meine Icons dementsprechend auf die jeweilige Dichte hoch skaliert, bei einer low-density (ldpi) oder einer normal-density(mdpi) sieht meine Anwendung ganz okay aus, nur mit einer high-density (hdpi) oder grösser sind meine Icons riesig dementsprechend werden alle Icons verschoben und der Platz meines 7-Zoll-Emulator mit einer Bildschirmauflösung von 1024X600 ist für mein Layout nicht mehr ausreichend.

Ich dachte immer, dass bei einer höheren Pixeldichte die Icons eher kleiner angezeigt werden? Irgendwie verstehe ich das alles nicht so ganz.

ich habe auch schon versucht die Icons in den Ordnern drawable-hdpi und drawable-xhdpi auf eine Pixel-Breite und -Höhe von (18x18) zu setzen, damit sie nicht automatisch auf 72x72 oder 96x96 hoch skaliert werden. Aber das wiederum sieht auf einem Gerät mit 10-Zoll nicht wirklich gut aus.

Aber ich kann doch nicht für jede Bildschirmauflösung, jede Pixeldicht und dann auch noch für jede Bildschirmgrösse das alles abfangen? Ich wüsste auch ehrlich gesagt nicht wie? Wenn mir hier jemand helfen könnte wäre ich sehr dankbar.

Lg
 
Ich glaube du haust hier ein bisschen was durcheinander...
Die Pixeldichte ist erst mal unabhängig von der Bildschirmgröße zu betrachten. PPI = Pixel per Inch und nicht Pixel per Device o.Ä... Vielleicht "hilft" es dir ja schon wenn du dich von diesem Gedanken etwas löst.

Aber so gesehen, hast du natürlich recht, ein größeres Gerät stellt insgesamt die Elemente auch größer dar - aber die "Abstände" nun mal auch... Die Technik-Redakteure sprechen, dann von Unschärfe... :)

Was sich (für mich) als "günstig" herausgestellt hat:
Die Icons in möglichst allen Formaten (du hast sie ja selbst genannt) bereitzustellen und dann an der ein oder anderen Stelle zu "schrauben", wo es wirklich genau sein muss*.
Btw: Warum sollte es nicht gehen jedes Objekt "nach zumanipulieren"? So gesehen ist sogar ziemlich einfach möglich, indem man die Objekte, die man darstellen möchte, alle mit dem Density-Faktor multipliziert.

Was dagegen wirklich nicht möglich ist, ist die Darstellung für jedes Gerät 100%tig im richtigen Verhältnis zu gewährleisten. Warum das so ist wurde hier schon öfter thematisiert. Aber insgesamt brauchst du dich nicht allzu sehr daran stören, meistens ist die Differenz in der Skalierung nur in einem ziemlich kleinen Bereich möglich, also für den Menschen so nicht sichtbar. Bei Spielen kann es aber schon mal nervig sein, wenn es "auf jeden Pixel ankommt", wenn Kollisionserkennungen die Spiellogik beeinflussen. Aber das war ja nicht deine Frage^^

Ergänzend:
Code:
private void loadScreenDimens() {
        DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics();
        mDensity = getApplicationContext().getResources().getDisplayMetrics().density;
        int width = metrics.widthPixels;
        int height = metrics.heightPixels;
        Log.i(TAG, "width: " + width + "  |  height: " + height + "  |  mDensity: " + mDensity);
    }
Hau die Funktion mal irgendwo dazwischen und rufe sie in onCreate (oder sonst wo) auf. Dann die Anwendung auf ein paar Testgeräten laufen lassen (hast ja genug^^) und auf die Logs schielen. Vielleicht bringt das mehr Licht ins Dunkel^^ hat mir jedenfalls geholfen ein bisschen mehr Gespür für die Sache zu bekommen.

Greetz
 
  • Danke
Reaktionen: lumo2707
Danke ui_3k1, wirklich Danke:)
Irgendwie ist es mir im nachhinein ein bisschen peinlich aber ich habs jetzt....
Und ja deine Funktion hat mir echt geholfen, du hattest recht, ich hab da was falsch verstanden.

Lg
 
  • Danke
Reaktionen: ui_3k1
Ach quatsch, peinlich ist das auf keinen Fall. Ist anfangs halt super "komisch" sich darunter was vorzustellen, das dürfte den meisten so gehen^^
Freut mich, dass es geholfen hat :)
 
@ui_3k1, ich würde dir auch gern ein "Danke" abgeben ich weiß nur nicht wie? :p
 

Ähnliche Themen

M
Antworten
4
Aufrufe
1.183
swa00
swa00
5
Antworten
0
Aufrufe
1.175
586920
5
B
Antworten
4
Aufrufe
528
bb321
B
Zurück
Oben Unten