Làm cách nào để xác định hình dạng cơ sở có thể tái sử dụng (hoặc gradient hoặc góc) dễ dàng trong XML?Xác định Kiểu cha mẹ XML của Gradient/Shape/Corners
Tôi có một chục hoặc nhiều gradient có thể vẽ giống với màu bắt đầu và màu kết thúc. Tôi đã hy vọng để xác định các công cụ giống hệt nhau ở một nơi khác và có một tập tin XML cho mỗi gradient khác nhau mà chỉ xác định màu bắt đầu và kết thúc. Điều đó có thể không?
Đây là cơ sở:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:type="linear"
android:angle="270"
android:startColor="#e1ffffff"
android:endColor="#e100ff00">
<stroke android:width="1dp"
android:color="#ff000000" />
<corners android:radius="4dp" />
</gradient>
</shape>
Sau đó, tôi muốn ghi đè lên startColor và endColor (và có thể các góc bán kính quá hoặc bất kỳ tài sản khác) trong tập tin XML của mỗi drawable.
Tôi đã thử sử dụng cả cha lẫn mẹ và kiểu, nhưng cả hai đều không sử dụng bất kỳ thuộc tính nào. Ví dụ:
<style name="base_gradient">
<item name="android:angle">270</item>
<item name="android:type">linear</item>
<item name="android:startColor">#e1ffffff</item>
<item name="android:endColor">#e100ff00</item>
</style>
Và rồi cái nhìn drawable như:
<gradient style="@style/base_gradient" />
Đó không làm việc. Tôi đã thử tương tự như đã đặt ở trên trong tệp XML của chính nó và sau đó thực hiện việc này cho mỗi đối tượng có thể drawable:
<gradient parent="@drawable/base_gradient" />
Điều đó cũng không có tác dụng.
Có cách nào để thực hiện việc này không?