Ich versuche, einen Kreis zu zeichnen, die den gleichen Durchmesser von 2,5 Zoll (oder einen anderen Wert) in jedem Android-Gerät haben wird, unabhängig von der Bildschirmgröße. Die Durchmessergröße muss bei allen Geräten gleich sein und unten ist was ich versucht habe.Wie zeichne ich einen Kreis auf verschiedenen Bildschirmen (Geräte) mit gleichem Durchmesser in Android
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="@drawable/light"
tools:context=".MainActivity">
<ImageView
android:layout_width="3in"
android:layout_height="3in"
android:src="@drawable/oval_shape"
android:id="@+id/imageView"
android:scaleType="matrix"/>
</RelativeLayout>
oval_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#666666"/>
<size
android:width="2.5in"
android:height="2.5in"/>
</shape>
Das Problem mit diesem Code ist, wenn ich es mit 4,5 in Bildschirm (real Telefon) versuchen, der Durchmesser 2.5inches wie erwartet, aber beim Test in 4-Zoll-Bildschirm ist der Durchmesser weniger als 2,5 Zoll, es hat einen kleinen Unterschied. Ich habe es auch mit Millimeter (mm) versucht, aber es hat auch nicht gut funktioniert.
Also wie kann ich die Anforderung der gleichen Größe Kreis in jedem Telefon erreichen?
Sie können ['DisplayMetrics'] (http://developer.android.com/reference/android/util/DisplayMetrics.html)' xdpi' und 'ydpi' verwenden, um die richtige Anzahl an Pixeln für Ihr gewünschtes Objekt zu berechnen Größe. –
@ElliottFrisch: - Können Sie mir ein Codebeispiel geben? – Barrier
Haben Sie 'dp' probiert? – Max