Przeglądałem dokumentację dla GradientColor https://developer.android.com/reference/android/R.styleable.html#GradientColor. Jak zdefiniować kolor gradientu w XML i zastosować go do rysowania wektorowego XML?Czy GradientColor może zostać użyty do zdefiniowania gradientu wypełnienia lub obrysu w całości w XML?
Próbowałem już w color.xml, styles.xml oraz w formacie XML wektorowym.
pojawia się błąd "Nie można konwertować @ id/gradclor w ColorStateList" z:
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="120dp"
android:height="120dp"
android:viewportWidth="120.0"
android:viewportHeight="120.0">
<path
android:name="play_triangle"
android:pathData="M 30 30 L 30 90 L 80 60 z"
android:strokeColor="@id/gradclor"
android:strokeWidth="5"/>
<color
android:name="@+id/gradclor"
android:startColor="#FFFFFF"
android:endColor="#00FFFF"
android:angle="145"/>
</vector>
lub "Nie udało się przekształcić #FFFFFFFF # 00FFFFFF 145 do ColorStateList" przy użyciu:
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="120dp"
android:height="120dp"
android:viewportWidth="120.0"
android:viewportHeight="120.0">
<path
android:name="play_triangle"
android:pathData="M 30 30 L 30 90 L 80 60 z"
android:strokeColor="@color/GradientStrokeBorder"
android:strokeWidth="5"/>
</vector>
z następujących w color.xml:
<color name="GradientStrokeBorder">
<item name="android:startColor">#FFFFFF</item>
<item name="android:endColor">#00FFFF</item>
<item name="android:angle">145</item>
</color>
Świetna robota. Warto wspomnieć, że powoduje to awarię aplikacji na urządzeniach niższych niż API 24 (7.0), więc umieszczam wersję odnoszącą się do gradientu w * res/color/blue_gradient.xml * ('@ color/blue_gradient') w wersji ** res/drawable-v24 ** i wersja odnosząca się do zwykłego koloru w ** res/drawable **. – TTransmit