Я хочу создать фигуру с закругленным левым верхним углом и закругленным левым нижним углом:
<?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>
Но форма выше не дала мне того, что я хочу. Получился прямоугольник без закругленных углов.
android
android-shape
user256239
источник
источник
Хотя на этот вопрос уже был дан ответ (это ошибка, из-за которой меняются местами bottomLeftRadius и bottomRightRadius), ошибка исправлена в android 3.1 (уровень API 12 - проверено на эмуляторе).
Таким образом, чтобы убедиться, что ваши чертежи выглядят правильно на всех платформах, вы должны поместить «исправленные» версии чертежей (то есть там, где нижний левый / правый радиусы действительно верны в xml) в папку res / drawable-v12 вашего приложения. Таким образом, все устройства, использующие версию Android> = 12, будут использовать правильные файлы для рисования, в то время как устройства, использующие более старые версии Android, будут использовать чертежи «обходного пути», которые находятся в папке res / drawables.
источник
values/dimens.xml
файл по умолчанию , содержащий инвертированные значения bottom_left и bottom_right, и новыйvalues-v12/dimens.xml
файл с правильными значениями. Таким образом, вы можете сохранить только одну версию графического XML-файла, и только значение размера будет заменено на основе версии API.Из документации :
Например, вы должны установить,
android:radius="<bigger than 1dp>"
чтобы иметь возможность делать то, что вы хотите:<corners android:radius="2dp" android:bottomRightRadius="0dp" android:topRightRadius="0dp"/>
источник
Вы также можете использовать очень маленькие числа для своего радиуса ».
<corners android:bottomRightRadius="0.1dp" android:bottomLeftRadius="2dp" android:topLeftRadius="2dp" android:topRightRadius="0.1dp" />
источник
для других есть решение для любого уровня API, вы можете разместить элемент друг над другом, например:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- my firt item with 4 corners radius(8dp) --> <item> <shape> <solid android:angle="270.0" android:color="#3D689A" /> <corners android:topLeftRadius="8dp" /> </shape> </item> <!-- my second item is on top right for a fake corner radius(0dp) --> <item android:bottom="30dp" android:left="50dp"> <shape> <solid android:color="#5C83AF" /> </shape> </item> <!-- my third item is on bottom left for a fake corner radius(0dp) --> <item android:right="50dp" android:top="30dp"> <shape> <solid android:color="#5C83AF" /> </shape> </item> </layer-list>
результат светлым цветом, чтобы показать вам три элемента:
конечный результат:
С уважением.
источник
Эта ошибка записана здесь . Это ошибка устройств Android с уровнем API ниже 12. Вы должны поместить правильные версии своих макетов в папку drawable-v12, которая будет использоваться для уровня API 12 или выше. А ошибочная версия (углы переключены / перевернуты) того же макета будет помещена в папку с возможностью переноса по умолчанию, которая будет использоваться устройствами с уровнем API менее 12.
Например: мне нужно было создать кнопку с закругленным углом в правом нижнем углу.
В папке 'drawable' - button.xml: мне пришлось сделать скругленный нижний левый угол.
<shape> <corners android:bottomLeftRadius="15dp"/> </shape>
В папке 'drawable-v12' - button.xml: здесь была размещена правильная версия макета для использования на уровне API 12 или выше.
<shape> <corners android:bottomLeftRadius="15dp"/> </shape>
источник
попробуй это
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/upkia"/> <corners android:radius="10dp" android:topRightRadius="0dp" android:bottomRightRadius="0dp" /> </shape>
источник