Ich möchte eine Form mit links oben abgerundeter Ecke und links unten abgerundeter Ecke machen:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#555555"/>
<stroke android:width="3dp"
android:color="#555555"
/>
<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp"
/>
<corners android:bottomRightRadius="0dp" android:bottomLeftRadius="2dp"
android:topLeftRadius="2dp" android:topRightRadius="0dp"/>
</shape>
Aber die obige Form hat mir nicht das gegeben, was ich will. Es gibt mir ein Rechteck ohne abgerundete Ecken.
android
android-shape
user256239
quelle
quelle
Während diese Frage bereits beantwortet wurde (es ist ein Fehler, der dazu führt, dass bottomLeftRadius und bottomRightRadius umgekehrt werden), wurde der Fehler in Android 3.1 behoben (API-Level 12 - auf dem Emulator getestet).
Um sicherzustellen, dass Ihre Drawables auf allen Plattformen korrekt aussehen, sollten Sie "korrigierte" Versionen der Drawables (dh wo die Radien unten links / rechts in der XML tatsächlich korrekt sind) in den Ordner res / drawable-v12 Ihrer App einfügen. Auf diese Weise verwenden alle Geräte, die eine Android-Version> = 12 verwenden, die richtigen Drawable-Dateien, während Geräte, die ältere Android-Versionen verwenden, die Drawables "Workaround" verwenden, die sich im Ordner res / drawables befinden.
quelle
values/dimens.xml
verwenden, die die invertierten Werte bottom_left und bottom_right enthält, sowie eine neuevalues-v12/dimens.xml
Datei mit den richtigen Werten. Auf diese Weise können Sie nur eine einzige Version der zeichnbaren XML-Datei behalten, und nur der Dimen-Wert wird basierend auf der API-Version ausgetauscht.Aus der Dokumentation :
Zum Beispiel müssen Sie eine festlegen
android:radius="<bigger than 1dp>"
, um tun zu können, was Sie wollen:quelle
Sie können auch extrem kleine Zahlen für Ihren Radius verwenden.
quelle
Für andere gibt es eine Lösung für jede API-Ebene. Sie können ein Element übereinander platzieren. Beispiel:
Das Ergebnis mit heller Farbe zeigt Ihnen die drei Elemente:
das Endergebnis:
Freundliche Grüße.
quelle
Dieser Fehler wird hier abgelegt . Dies ist ein Fehler von Android-Geräten mit einer API-Stufe von weniger als 12. Sie müssen die richtigen Versionen Ihrer Layouts in den Ordner drawable-v12 legen, der für API-Stufe 12 oder höher verwendet wird. Und eine fehlerhafte Version (Ecken umgeschaltet / umgekehrt) desselben Layouts wird in den Standard-Zeichenordner gestellt, der von Geräten mit einer API-Stufe von weniger als 12 verwendet wird.
Zum Beispiel: Ich musste einen Knopf mit einer abgerundeten Ecke unten rechts entwerfen.
Im 'zeichnbaren' Ordner - button.xml: Ich musste die linke untere Ecke abgerundet machen.
Im Ordner 'drawable-v12' - button.xml: Hier wurde die richtige Version des Layouts platziert, um für API Level 12 oder höher verwendet zu werden.
quelle
Versuche dies
quelle