android-指形状内部的颜色
我想在一个形状中引用我的自定义颜色属性,它总是导致错误 首先,我声明属性:android-指形状内部的颜色,android,themes,Android,Themes,我想在一个形状中引用我的自定义颜色属性,它总是导致错误 首先,我声明属性: <resources> <attr name="divider_color" format="color|reference" /> </resources> 但我想在形状中使用它: <shape <gradient android:angle="0" android:centerColor="?divider_color"
<resources>
<attr name="divider_color" format="color|reference" />
</resources>
但我想在形状中使用它:
<shape
<gradient
android:angle="0"
android:centerColor="?divider_color"
android:endColor="#00000000"
android:startColor="#00000000"
android:type="linear" />
</shape>
我不知道。因此,我检查了该异常在操作系统中的起源:
307公共整数getColor(整数索引,整数定义值){
308索引*=AssetManager.STYLE_NUM_条目;
309最终int[]数据=mData;
310最终整数类型=数据[索引+AssetManager.STYLE_类型];
311如果(type==TypedValue.type\u NULL){
312返回值;
313}如果(type>=TypedValue.type\u FIRST\u INT
314&&type我不知道。所以我检查了该异常在操作系统中的起源:
307公共整数getColor(整数索引,整数定义值){
308索引*=AssetManager.STYLE_NUM_条目;
309最终int[]数据=mData;
310最终整数类型=数据[索引+AssetManager.STYLE_类型];
311如果(type==TypedValue.type\u NULL){
312返回值;
313}如果(type>=TypedValue.type\u FIRST\u INT
314&&type在L之前,您不能。
请参见此处:在L之前,您不能。
请参阅此处:这是Android中的一个错误。这在棒棒糖中已修复,因此应可用于L&M,但在以前的设备上它将崩溃这是Android中的一个错误。这在棒棒糖中已修复,因此应可用于L&M,但在以前的设备上它将崩溃
android:background="?divider_color"/>
<shape
<gradient
android:angle="0"
android:centerColor="?divider_color"
android:endColor="#00000000"
android:startColor="#00000000"
android:type="linear" />
</shape>
307 public int getColor(int index, int defValue) {
308 index *= AssetManager.STYLE_NUM_ENTRIES;
309 final int[] data = mData;
310 final int type = data[index+AssetManager.STYLE_TYPE];
311 if (type == TypedValue.TYPE_NULL) {
312 return defValue;
313 } else if (type >= TypedValue.TYPE_FIRST_INT
314 && type <= TypedValue.TYPE_LAST_INT) {
315 return data[index+AssetManager.STYLE_DATA];
316 } else if (type == TypedValue.TYPE_STRING) {
317 final TypedValue value = mValue;
318 if (getValueAt(index, value)) {
319 ColorStateList csl = mResources.loadColorStateList(
320 value, value.resourceId);
321 return csl.getDefaultColor();
322 }
323 return defValue;
324 }
325
326 throw new UnsupportedOperationException("Can't convert to color: type=0x"
327 + Integer.toHexString(type));
328 }