Trennen Sie die Unabhängigkeit für Zeichenelemente der Canvas-Klasse

9

Die Android-Canvas-Klasse unterstützt eine Vielzahl von Zeichenelementen wie Kreise, Linien usw. Ich habe eine App, mit der Sie einige statistische Daten darstellen können.

Nach dem Lesen der Beschreibung auf Ссылка . . . Ich war mir nicht sicher, in welchen Einheiten sich die Koordinaten befanden oder wie man sie unabhängig vom Gerät / der Auflösung machen konnte.

In welchen Einheiten befinden sich diese und was ist "Best Practice" zum Zeichnen von Linien und Kreisen und Rechtecken, die auf vielen verschiedenen Bildschirmgrößen und Auflösungen funktionieren? Vielen Dank im Voraus.

    
Peter Nelson 05.02.2011, 17:48
quelle

1 Antwort

4

Die Android-Dokumentation sagt "Die Einheit für Position und Abmessungen ist das Pixel". Nachdem ich einige Zeit experimentiert hatte, fand ich heraus, dass vor der Version 2.0 die Einheit das Pixel war. Ab 2.0 ist die Einheit höchstwahrscheinlich der Dip (geräteunabhängiges Pixel).

Für den folgenden Code:

%Vor%

Bei 320x480, 480x800 und 240x320 Emulatoren mit Android 2.0 + bekomme ich das gleiche Quadrat, das der Breite des Bildschirms entspricht.

Diese Entdeckung hat es mir ermöglicht, das Problem zu lösen: Vertikale 1-Pixel-Linien auf einem großen Bildschirm sind manchmal 2 Pixel breit. Setzen Sie die Strichstärke auf 0, um 1-Pixel-Linien unabhängig von der Bildschirmgröße zu zeichnen.

Bearbeiten

Nachdem ich mehr Erfahrung mit Android gesammelt habe, muss ich meine Schlussfolgerungen korrigieren. Tatsächlich gibt es ein Attribut "android: anyDensity" im "Unterstützen-Bildschirme" -Tag der AndroidManifest.xml. Dieses Attribut ist standardmäßig wahr. Wenn es wahr ist, ist die Maßeinheit dp, ansonsten ist es ein Pixel.

    
Viachaslau Tysianchuk 31.05.2011 19:01
quelle

Tags und Links