2012-04-10 9 views
0

Obwohl ich Bildauflösungen kenne und sie auf dem Android zu unterstützen ist eine ziemlich häufige Frage rund um Android Ich kann nicht scheinen, irgendwelche Fragen oder Beiträge online zu finden, die sich mit dem befassen, was ich möchte machen.Android - Overlaying Bilder für verschiedene Auflösungen

Ich habe eine Karte, die ich als Hintergrund des Android-Geräts festgelegt. Ich überlagere dann berührbare Punkte und Bilder, wo eine bestimmte Stadt existiert. Mein Problem ist, wie ich mit der Positionierung der Städte auf verschiedenen Geräten richtig umgehen sollte.

Ich habe verschiedene Bilder für verschiedene dpi's wenn jemand fragen sollte. Es ist jedoch die richtige Methode, um die Position von x und y in diesem Fall mit einem Prozentsatz festzulegen, der auf der skalierten Größe des Hintergrunds basiert. Es ist die Lösung, zu der ich immer wieder zurückkomme, aber ich muss noch einen Weg finden, um die skalierte Größe eines Hintergrundbildes zu erhalten.

Jede Rückmeldung wäre willkommen. Ryan

Antwort

1

Es ist wirklich schwierig, in Android zu versuchen Bilder auf einer bestimmten Stelle im Hintergrund Schicht unter Verwendung einer Kombination von dpi/Gewichte . Eines der Probleme ist, wie skaliert der Hintergrund? Verwenden Sie die vorgeschlagenen 9-Patch-Bilder oder lassen Sie das Bild von Android einfach zuschneiden oder verkleinern? Auch nachdem der "dpi" -Wert der Telefone nicht exakt ist, verwendet das Betriebssystem nur einen vordefinierten Multiplikator (z. B. 1,5x für hdpi), um schnell die Größe des Bildes zu schätzen. Um die "echte" dpi zu erhalten, benötigen Sie beispielsweise:

und verwenden Sie diese Werte in Ihrer Berechnung. Am Ende ist es wirklich am besten, einfach die wahren Werte des Bildschirms zu verwenden und Prozentsätze wie Sie angegeben verwenden. Ich glaube, so machen es auch die meisten OpenGL-Apps (jemand korrigiert mich, wenn ich falsch liege) und Apps wie diese, die kurz davor sind, eine Grafik-Engine zu verwenden, sollten sich wahrscheinlich ähnlich verhalten.

+0

Danke, obwohl mir die Idee nicht ganz gefallen hat, ist es hilfreich zu wissen, dass es die Richtung ist, in die ich gehen musste. Ich habe den Hintergrund so skalieren lassen, dass er genau auf den Bildschirm passt, den ich gerade berechnet habe, das Verhältnis, in dem er skaliert wurde, und verwendet, um die Punkte zu berechnen, um zusätzliche Bilder zu überlagern. So weit, ist es gut! Danke, nur gut zu wissen, zumindest ging ich damit in die richtige Richtung. – Ryan

0

Versuchen Layout Gewichte, hier ist eine gute Erklärung:

http://www.chess-ix.com/2012/01/17/the-use-of-layout_weight-with-android-layouts/

+0

Während dies theoretisch die Frage beantworten könnte, [wäre es vorzuziehen] (http://meta.stackexchange.com/q/8259), die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. –

+0

Danke für die Antwort, aber ich sehe nicht, wie dies sich beziehen würde. Anstatt mehrere Ansichten auf dem Bildschirm zu verwenden, verwende ich eine einzelne Ansicht, die eine Weltkarte darstellt. Ich überlagere dann kleine gezeichnete Bilder auf dieser Karte. Momentan verwende ich, wie bereits erwähnt, die skalierte Bildschirmgröße - die scheint zu funktionieren, scheint aber übertrieben. – Ryan

Verwandte Themen