Multiscreen Unterstützung - Nur largeScreens automatisch skalieren lassen

  • Antworten:3
c00der
  • Forum-Beiträge: 7

27.08.2010, 10:18:26 via Website

Hallo AndroidPit' ler,

kurz vorweg, habe mich heute erst registriert obwohl ich schon seit längerem Testberichte etc lesen tu. Finde das AndroidPit Portal echt super... Weiter so :D

Ich habe ansich nur eine kleine Frage, und zwar: Für mein Spiel regle ich selbst die Darstellung für Screens mit einer niedrigen und normalen Pixeldichte. Nur für große Screens möchte ich die Android interne hochskalierungs Feature nutzen. Daher müsste ich doch eigentlich folgenden XML Eintrag machen:

manifest.xml:
1<supports-screens
2 android:smallScreens="true"
3 android:normalScreens="true"
4 android:largeScreens="false"
5 android:anyDensity="false"/>

Das sollte doch bewirken, bzw. aussagen dass ich mich um smallScreens und normalScreens selbst kümmern tu nur eben für largeScreens soll Android OS die hochskalierungs Fukntion verwenden.

Mein Problem ist hierbei, dass auch auf lowscreens die Skalierung verwendet wird und hier jetzt sämtliche Grafiken winzig geworden sind.
Mein Spiel ist ansich soweit fertig und das ganze jetzt in DIP auszudrücken möchte ich ehrlich gesagt nicht mehr machen ;)

Danke für jeden Hinweis.
C00der

Antworten
Tobias Eckert
  • Forum-Beiträge: 155

27.08.2010, 12:17:43 via Website

Du meinst die Grafiken die Du im "drawable" Ordner hast? Hab auch noch nicht rausgefunden wie man da die automatische Skalierung abstellen kann. Ich selbst helfe mir damit die Grafiken alle komplett von Hand zu skalieren.

Wenn's nicht allzu viele Grafiken sind, kannst Du eine Kopie Deines drawable Ordners in den Ordner res/drawable-ldpi stellen. Was da drin steht wird denke ich nicht skaliert (hab's aber noch nicht ausprobiert).

Antworten
c00der
  • Forum-Beiträge: 7

28.08.2010, 10:30:10 via Website

Ah super Idee, die Grafiken nochmal in das drawable-ldpi verzeichnis zu setzen. Die würden dann auch auf lowscreens verwendet werden und das problem wäre daher auch behoben. Problem ist nur, dass ich mittlerweile schon knapp 3MB an Grafiken benötige, diese dann nochmal abzulegen wäre doch daher ziemlich eine Notlösung.

Gibt es daher eine andere Möglichkeit, Android mitzuteilen das für low-dpi Screens die selben Grafiken unskaliert aus dem mdpi verzeichnis nimmt?

Freue mich über jeden Tipp...
Danke

Antworten
Michael compute4you
  • Forum-Beiträge: 14

29.08.2010, 16:56:10 via Website

Hi,

Ich denke es wird Dir nichts anderes übrig bleiben als es "per Hand" zu coden.

in etwa so:

final BitmapFactory.Options bmfo = new BitmapFactory.Options();
bmfo.inScaled = false;
Bitmap unscaled = BitmapFactory.decodeResource(context,R.drawable.image,bmfo);
bmfo.inScaled = true;
Bitmap scaled = BitmapFactory.decodeResource(context,R.drawable.image,bmfo);
....

LG

Antworten