Ich hatte dieses Zeichen, um ein abgerundetes Rechteck als Hintergrund zu haben:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/light_gray" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:radius="6dp" />
</shape>
Dies funktioniert erwartungsgemäß einwandfrei.
Jetzt möchte ich dies so ändern, dass es nur die oberen Ecken abrundet, also ändere ich es wie folgt:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/light_gray" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:topLeftRadius="6dp" android:topRightRadius="6dp"
android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
</shape>
Aber jetzt ist keine der Ecken abgerundet und ich bekomme ein einfaches Rechteck. Was fehlt mir hier?
android
drawable
rounded-corners
Aleks G.
quelle
quelle
Antworten:
Versuchen Sie, diese Werte anzugeben:
Beachten Sie, dass ich zu geändert
0dp
habe0.1dp
.BEARBEITEN: Siehe Aleks G Kommentar unten für eine sauberere Version
quelle
<corners android:radius="1dp" android:topLeftRadius="6dp" android:topRightRadius="6dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
- Dies erzeugt perfekt quadratische untere Ecken ohne einen Hauch von Rundung. Ihre Lösung funktioniert jedoch ziemlich gut.android:radius="1dp"
Versuchen Sie so etwas zu tun:
Es scheint nicht geeignet zu sein, einen anderen Eckenradius des Rechtecks festzulegen. Sie können diesen Hack also verwenden.
quelle
In meinem Fall unten Code
quelle
Aufbauend auf der Antwort von Busylee können Sie auf diese Weise eine erstellen
drawable
, die nur eine nicht abgerundete Ecke hat (in diesem Beispiel oben links):Bitte beachten Sie, dass die oben
drawable
ist nicht korrekt im Android Studio - Vorschau angezeigt (2.0.0p7). Um es trotzdem in der Vorschau anzuzeigen, erstellen Sie eine andere Ansicht und verwenden Sie diese alsandroid:background="@drawable/..."
.quelle
Ich habe Ihren Code ausprobiert und einen oberen abgerundeten Eckknopf erhalten. Ich gab die Farben
@ffffff
und den Strich, den ich gab#C0C0C0
.Versuchen
quelle
Möglicherweise müssen Sie diese https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape lesen
und unten gibt es einen Hinweis.
Hinweis Jede Ecke muss (anfangs) einen Eckenradius von mehr als 1 haben, sonst sind keine Ecken abgerundet. Wenn Sie möchten, dass bestimmte Ecken nicht abgerundet werden, verwenden Sie android: radius, um einen Standard-Eckenradius größer als 1 festzulegen. Überschreiben Sie dann jede einzelne Ecke mit den gewünschten Werten und geben Sie Null an ("0dp"). ) wo Sie keine abgerundeten Ecken wollen.
quelle
Erstellen Sie roung_top_corners.xml auf drawable und kopieren Sie den folgenden Code
quelle