Ich möchte zwei Kreise vertikal und ich möchte ihre Größe die Hälfte der übergeordneten Höhe sein. Kurz gesagt, sehen Sie bitte das Bild unten.Skalierung auf die Hälfte der Höhe bei Beibehaltung des Seitenverhältnisses skalieren
Ich möchte die Kreise nach x
skaliert werden, die die Höhe von TextView ist, und kann je nach Systemeinstellungen variieren. Ich habe unten ein Layout erstellt, aber es hat nicht funktioniert. Ist das erreichbar?
UPDATE
die Antworten Nach zugewiesen ich einig beliebige Breite und Höhe auf den Kreis, und verändern „fitXY“ auf „centerInside“ (weil ich herausgefunden habe, dass fitXY tut Seitenverhältnis nicht beibehalten). Um verschiedene Systemeinstellungen zu simulieren, setze ich eine beliebige Höhe auf den TextView. Ich stelle die Hintergrundfarbe der ImageViews auf red
, um ihre Grenzen zu sehen.
Das Problem ist, wenn die Breite/Höhe des Kreises kleiner ist als 1/2 der TextView Höhe (z. B. Kreisbreite/Höhe = 10dp, TextView Höhe = 100dp) der Kreis nicht vergrößert.
Wenn die Breite des Kreises/Höhe größer als 1/2 der Höhe Textview, (zB Kreis Breite/Höhe = 200dp, Textview height = 100dp), dann der Kreis korrekt skaliert wird, aber irgendwie gibt es einige seltsame leere Ränder auf der linken/rechten Seite des Kreises.
ENDE UPDATE
habe ich ein Layout wie die folgenden, aber es hat nicht funktioniert.
item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<ImageView
android:src="@drawable/circle"
android:scaleType="fitXY"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="0dp"/>
<ImageView
android:src="@drawable/circle"
android:scaleType="fitXY"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="0dp"/>
</LinearLayout>
<TextView
android:textAppearance="@android:style/TextAppearance.Large"
android:text= "If he's so smart, how come he's dead?"
android:layout_weight="1"
android:layout_width="0dp"
android:gravity="center_vertical"
android:layout_height="wrap_content"/>
</LinearLayout>
circle.xml
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#0000FF"/>
</shape>
Welches Problem haben Sie genau mit dem Code, den Sie ausprobiert haben? (Ich meine, was passiert?) – Spirrow
Es scheint, dass die Höhe des Zeichens wird 1/2 der Höhe, wie ich es mir gewünscht, aber die Breite des Zeichens scheint nicht automatisch skaliert werden, so dass das Zeichen nicht als a gezeigt wird perfekter Kreis. –