我寫了一個應用程序,它依賴於資源中定義的顏色。有些是直接在佈局XML文件中設置的,有些是在代碼中設置的。例子:android:textColor不再適用於棉花糖
顏色定義res/values/styles.xml
:
<color name="orvGyro">#33B5E5</color>
佈局:
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dotSpace"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/orvGyro" />
顏色代碼:
accStatus.setTextColor(getResources().getColor(R.color.somecolor));
的應用目標API 17.截至棒棒糖,這有完美地工作,顯示正確的顏色。遷移到棉花糖(Cyanogenmod 13)後,所有這些顏色顯示爲橙色。其他顏色,在Java代碼中定義,而不是在資源中,似乎正確顯示。
我已經嘗試將目標API更改爲23並添加樣式API 21 +,無濟於事。
這裏有什麼問題?這是CyanogenMod13中的錯誤,還是我做錯了什麼?
編輯:看起來這不是從資源中獲取顏色。硬編碼的顏色如下圖所示也使我的橙色的文字:
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dotSpace"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#669900" />
編輯2:跨越Android M Developer Preview - TextView android:textColor being ignored剛剛來到。這可以解釋我正在經歷的行爲嗎?
編輯3:當我動態生成內容而不是使用佈局時,顏色正確顯示。例如:
TextView newType = new TextView(rilLteCells.getContext());
newType.setLayoutParams(new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 2));
newType.setTextAppearance(rilLteCells.getContext(), android.R.style.TextAppearance_Medium);
newType.setTextColor(rilLteCells.getContext().getResources().getColor(getColorFromGeneration(cell.getGeneration())));
newType.setText(rilLteCells.getContext().getResources().getString(R.string.smallDot));
row.addView(newType);
如果我直接在佈局中設置顏色,我該怎麼做? – user149408
它將從您的色彩資源中選取合適的顏色。 –
這正是不起作用的。即使在佈局中指定顏色資源時,它也會顯示爲橙色。 – user149408