Я попытался сделать линейный градиент на своем фоне для своего приложения, и это привело к цветным полосам.
Что я сделал:
Я создал форму с именем window_background_app. xml
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="45"
android:endColor="#Fe005694"
android:startColor="#fe2D8ACC"
android:type="linear" />
</shape>
Я использовал эту форму в стиле для применения к фону:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@drawable/window_background_app</item>
</style>
</resources>
Я использовал этот стиль в манифесте моего приложения:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:name="generic_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
Проблема
При запуске моего приложения фон отображал некоторые полосы с градиентом background_with_banding
Я обнаружил в похожих вопросах (например, этот ), что мне следует:
- Попытаться установить dither для true для фона. Проблема : использование дизеринга теперь не рекомендуется.
- Чтобы установить Pixelformat в PixelFormat.RGBA_8888. Проблема : это ничего не изменило для меня.
Я получил эту проблему на:
- OnePlus 5t Api 28 (реальное устройство)
- Samsung S8, Api 28 (реальное устройство)
- Пиксель 2 Api 24 (эмулятор)
- Пиксель 2 Api 22 (эмулятор)
- Пиксель C Api 27 (эмулятор)
Не появилось полос:
- Samsung Galaxy J3 Api 22 (реальное устройство)
- Samsung SM -T533 Api 22 (реальное устройство)
Вопрос
Я не уверен, что проблема связана с обновлениями версии Android или из материал (или оба). И еще одна проблема, с которой я столкнулся, заключалась в том, что многие решения, которые я мог найти в Интернете, были довольно старыми (самые последние были примерно в 2014 году).
Поэтому мой вопрос:
Есть ли какие-то новые решения для цветовой полосы на градиенте, так как dither = true и pixelFormat = RGBA_8888?