根据背景颜色更改微调器文本颜色

时间:2011-12-29 17:55:20

标签: android spinner

我有一个带有图像和文本视图的自定义微调器布局,但我注意到,根据制造商的皮肤,由于颜色,你无法看到文本。白色,黑色黑色。

我也注意到我的其他非自定义微调器都没有这样做,而且似乎自动更改所以我的问题是如何才能让文本颜色发生变化以便可以读取?

这是一个非自定义微调器

ArrayAdapter<CharSequence> cAdapter;
    cAdapter = ArrayAdapter.createFromResource(this, R.array.colors,android.R.layout.simple_spinner_item);
    int cSpinnerDD = android.R.layout.simple_spinner_dropdown_item;
    cAdapter.setDropDownViewResource(cSpinnerDD);
    color.setAdapter(cAdapter);

自定义微调器我只是覆盖视图以将图像放入文本

这是它的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView android:id="@+id/icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<TextView android:id="@+id/icon_txt"
    android:paddingLeft="25dp"
    android:textSize="18sp"
    android:layout_marginTop="5dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>  
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

使用当前主题的默认文本颜色(存储在资源ID android.R.attr.textColorPrimary中):

<TextView android:id="@+id/icon_txt"
    android:textColor="?android:attr/textColorPrimary"
    ... />

答案 1 :(得分:0)

我认为更改主题会改变列表视图的外观。

我也被困在这一点,但我做的是我做了一个新的Android应用程序项目和选择空白活动(代替空活动)并且它工作(我知道这不是一个好的解决方案,但它解决了我的问题)