Zeichnung "drawables" auf eine Leinwand, im dp-Einheiten
Ich versuche, herauszufinden, ob es eine Möglichkeit zum zeichnen von bitmaps, um den canvas-Bereich im dp-Einheiten anstelle von Pixeln. Zum Beispiel: der folgende code-Skalen die drawable auf 100 * 100 px. Wie kann ich stattdessen ändern Sie es tun, 100 * 100 dp?
int lengthPos = 10;
int heightPos = 10
mImage.setBounds(lengthPos, heightPos, (lengthPos + 100), (heightPos + 100));
mImage.draw(c);
Zusätzlich, ich bin mir nicht sicher, was die Maßeinheit für Bildschirm-Klicks sind, aber sich nicht mit den Pixeln auf dem Bildschirm, so dass es schwer zu erkennen, wenn ein drawable ausgewählt wurde (irgendwie Sie haben zu erraten, wo Sie klicken, um wählen Sie ein drawable. Kann ich auch skalieren, klicken Sie auf Koordinaten zu dp? scheint nicht so, als wäre es zu hart, vor allem, da Bildschirm, klicken Sie auf coords gespeichert sind, in eine lokale variable, die für die Verarbeitung der in meiner Bewerbung.
In anderen Worten, ich muss die Skalierung so, dass die Klick-Koordinaten, 250, 250 wählt die gezeichneten Pixel bei 250, 250 auf unterschiedlichen Bildschirmauflösungen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Verhältnis dp/dx ist gleich Ihrem Gerät dpi/160, so können Sie berechnen dips auf diese Weise leicht.
Verwenden
Finden Sie in der Referenz für weitere Informationen: http://developer.android.com/reference/android/util/DisplayMetrics.html
Quelle (@Romain Guy)
Können Sie nicht direkt, aber Sie können konvertieren zwischen px und dp. Finden Sie die Antwort in diesem Verwandte StackOverflow-post für details.