Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android-指形状内部的颜色_Android_Themes - Fatal编程技术网

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    }