Градиентный цвет не работает должным образом на Android 10 (повернут на 90 градусов) - PullRequest
1 голос
/ 25 октября 2019

Я применил градиентный нарисованный ресурс в качестве фона для представления.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="10dp" />
    <gradient
        android:startColor="#cf2aff"
        android:endColor="#5409ff"
        android:type="linear" />
</shape>

В устройствах с Android version < 10 оно отображается так, как ожидается:

gradient background 1

Но в устройствах с Android 10 оноповорачивается на 90 градусов:

gradient background 2

Кто-нибудь имел такую ​​же проблему и знает, как ее исправить?

Ответы [ 2 ]

1 голос
/ 25 октября 2019

Добавить android:angle="0"

Я получил исправление для этого. Вам нужно установить атрибут android:angle, даже если он равен 0, чтобы он работал на Android 10 .

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="10dp" />
    <gradient
        android:angle="0"
        android:startColor="#cf2aff"
        android:endColor="#5409ff"
        android:type="linear" />
</shape>

Полагаю, для Android 10 угол по умолчанию установлен на 90 градусов.

0 голосов
/ 25 октября 2019

Вы пытались установить угол на 180 градусов? Как это:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="10dp" />
    <gradient
        android:angle="180"
        android:startColor="#cf2aff"
        android:endColor="#5409ff"
        android:type="linear" />
</shape>
...