Wie stelle ich den abgerundeten Eckenradius einer Farbe ziehbar unter Verwendung von XML?

StackOverflow https://stackoverflow.com/questions/2122199

  •  22-09-2019
  •  | 
  •  

Frage

Auf der Android-Website gibt es einen Abschnitt über Farbe Drawables . Definieren dieser Drawables in xml sieht wie folgt aus:

<resources>
    <drawable name="solid_red">#f00</drawable>
    <drawable name="solid_blue">#0000ff</drawable>
    <drawable name="solid_green">#f0f0</drawable>
</resources>

in dem Java-API haben sie Thr folgende Verfahren abgerundete Ecken zu definieren:

setCornerRadius(float radius)

Gibt es eine Möglichkeit, die abgerundeten Ecken in der XML zu setzen?

War es hilfreich?

Lösung

Mit dem <shape> Tag einen ziehbar in XML mit abgerundeten Ecken erstellen. (Sie können mit dem Form-Tag andere Sachen tun, wie eine als auch Farbverläufe definieren).

Hier ist eine Kopie einer XML-Datei, die eine ziehbar mit einem weißen Hintergrund, schwarzer Rand und abgerundeten Ecken zu schaffen ich in einem meiner apps mit:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#ffffffff"/>    

    <stroke android:width="3dp"
            android:color="#ff000000" />

    <padding android:left="1dp"
             android:top="1dp"
             android:right="1dp"
             android:bottom="1dp" /> 

    <corners android:bottomRightRadius="7dp"
             android:bottomLeftRadius="7dp"
             android:topLeftRadius="7dp"
             android:topRightRadius="7dp" /> 
</shape>

Andere Tipps

mbaird Antwort funktioniert gut. Seien Sie sich bewusst sein, dass es in Android einen Bug zu sein (2.1 mindestens) scheint, dass, wenn Sie irgendwelche einzelnen Ecke Radius auf 0 gesetzt, es allen Ecken auf 0 (zumindest Kräfte, die der Fall mit „dp“ Einheiten ist; I didn ‚t versuchen, sie mit anderen Einheiten).

brauchte ich eine Form, wo die oberen Ecken abgerundet wurden und die unteren Ecken waren quadratisch. Ich habe dies, indem die Ecken erreicht I auf einen Wert etwas größer als 0 bis quadratisch sein wollte: 0.1dp. Dies macht nach wie vor als quadratische Ecken, aber nicht die anderen Ecken zwingt 0 Radius sein.

Versuchen Sie unter Code

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners
    android:bottomLeftRadius="30dp"
    android:bottomRightRadius="30dp"
    android:topLeftRadius="30dp"
    android:topRightRadius="30dp" />
<solid android:color="#1271BB" />

<stroke
    android:width="5dp"
    android:color="#1271BB" />

<padding
    android:bottom="1dp"
    android:left="1dp"
    android:right="1dp"
    android:top="1dp" /></shape>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top