Fra*_*ero 48 android colors android-layout android-spinner android-color
正如我在我的问题中写的那样,我想改变Spinner
XML格式的下拉箭头(默认箭头,不是自定义箭头或类似的东西)的颜色,但问题是我找不到任何东西要做从中引用它XML
.
可能吗?如果是,我该如何改变颜色?
提前致谢.
Hus*_*eky 117
有三种方法可以实现这一目标.
1.通过代码:
在你的xml中,确保你的微调器有一个id.假设我们有一个id为"spinner"的微调器.
在您的代码中,在onCreate()中添加以下内容:
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.getBackground().setColorFilter(getResources().getColor(R.color.red), PorterDuff.Mode.SRC_ATOP);
Run Code Online (Sandbox Code Playgroud)
其中red是values文件夹中colors.xml中定义的颜色.
2.通过xml:
对于API 21+:
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/red" />
Run Code Online (Sandbox Code Playgroud)
或者如果您使用支持库,您可以使用:
<android.support.v7.widget.AppCompatSpinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="@color/red" />
Run Code Online (Sandbox Code Playgroud)
3.通过drawables:
您可以使用此在线工具:http://android-holo-colors.com
这将使用您喜欢的颜色为您想要的任何视图生成自定义drawable.确保选择微调器,然后下载资源.
mew*_*ewa 13
我很惊讶没有人指出它,但你可以只是子类Widget.AppCompat.Spinner
和改变backgroundTint
<style name="Spinner" parent="Widget.AppCompat.Spinner">
<item name="backgroundTint">@color/spinnerTint</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并将其应用于 Spinner
<Spinner
style="@style/Spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnerMode="dropdown" />
Run Code Online (Sandbox Code Playgroud)
Meh*_*aji 12
使用backgroundTint属性
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/white"
/>
Run Code Online (Sandbox Code Playgroud)
如果min_SDK <21(Lollipop)你应该使用AppCompatSpinner
<android.support.v7.widget.AppCompatSpinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="@color/white"
/>
Run Code Online (Sandbox Code Playgroud)
如果( API 21+){
您可以android:backgroundTint="@color/color"
在 Spinner 中直接使用:
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:backgroundTint="@color/color" />
Run Code Online (Sandbox Code Playgroud)
} 其他{
创建自己的风格:
<style name="spinner_style" parent="Widget.AppCompat.Spinner">
<item name="backgroundTint">@color/color</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后进入微调器:
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/spinner_style"/>
Run Code Online (Sandbox Code Playgroud)
}
注意:您可以在所有 API 中使用 style 方法。
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="#00000" />
Run Code Online (Sandbox Code Playgroud)
仅适用于 API 级别 21 以上