在两个不同的活动中,我想使用相同的渐变可绘制但具有不同的颜色。我认为以下列方式将渐变颜色引用到活动主题:
我在 attrs.xml 中添加了后续行
<attr name="backgroundTopColor" format="color" />
<attr name="backgroundBottomColor" format="color" />
在 bg_gradient.xml 我输入
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="?backgroundTopColor"
android:endColor="?backgroundBottomColor"
android:angle="270" />
<corners android:radius="0dp" />
</shape>
在活动主题中,我添加了
<item name="backgroundTopColor">#FFFFFFFF</item>
<item name="backgroundBottomColor">#FFFFFF00</item>
在 logcat 中启动应用程序后
02-07 14:03:59.479:错误/AndroidRuntime(2096):原因:java.lang.UnsupportedOperationException:无法转换为颜色:type=0x2
02-07 14:03:59.479:错误/AndroidRuntime(2096) : 在 android.content.res.TypedArray.getColor(TypedArray.java:326)
02-07 14:03:59.479: 错误/AndroidRuntime(2096): 在 android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:647 )
02-07 14:03:59.479: 错误/AndroidRuntime(2096): 在 android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:788)
02-07 14:03:59.479: 错误/AndroidRuntime(2096):在 android.graphics.drawable.Drawable.createFromXml(Drawable.java:729)
02-07 14:03:59.479: 错误/AndroidRuntime(2096): 在 android.content.res.Resources.loadDrawable(Resources.java:1694)
02-07 14:03:59.479: 错误/AndroidRuntime(2096): ... 29 更多
我该如何解决这个问题?
谢谢
注意:API 级别 = 8