Android 根据主题改变颜色

发布于 2024-09-04 21:53:47 字数 190 浏览 8 评论 0原文

我试图在我的应用程序中提供用户可设置的颜色。黑底白字和白底黑字。我有多种布局和许多列表视图,包括标准适配器和自定义适配器。人们建议使用主题,但我没能改变所有布局的文本颜色。谁能向我展示一个可以实现此目的的实际主题布局?我可以使用 myscreen.setBackGroundColor(xx) 轻松更改背景颜色,但是当我尝试使用主题更改文本时,它也会更改微调器文本。

I am trying to provide user settable colors in my app. White text on black background and black text on white background. I have multiple layouts with many listviews, both standard and custom adapters. People have suggested using Themes, but I have had no luck changing the text colors across all layouts. Can anyone show me an actual Theme layout that can accomplish this? I can easily change the background colors using myscreen.setBackGroundColor(xx), but when I try to change the text with a theme, it also changes spinner text as well.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

も让我眼熟你 2024-09-11 21:53:47

在您的主题中使用

    <item name="android:spinnerStyle">@style/StandardSpinner</item>
    <item name="android:spinnerItemStyle">@style/StandardSpinnerItem</item>
    <item name="android:spinnerDropDownItemStyle">@style/StandardSpinnerDropDownItem</item>

,这将覆盖文本样式。

你的风格会是这样的:

<style name="StandardSpinner" parent="@android:style/Widget.Spinner">
    <item name="android:background">@drawable/spinner</item>
</style>

<style name="StandardSpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem">
    <item name="android:textAppearance">@style/GameDisplayText</item>
    <item name="android:gravity">center_vertical|center_horizontal</item>
</style>

<style name="StandardSpinnerDropDownItem" parent="@android:style/Widget.DropDownItem.Spinner">
    <item name="android:textAppearance">@style/GameDisplayText</item>
</style>

Use

    <item name="android:spinnerStyle">@style/StandardSpinner</item>
    <item name="android:spinnerItemStyle">@style/StandardSpinnerItem</item>
    <item name="android:spinnerDropDownItemStyle">@style/StandardSpinnerDropDownItem</item>

in your theme, this will override the Text style.

Your style will look something like this:

<style name="StandardSpinner" parent="@android:style/Widget.Spinner">
    <item name="android:background">@drawable/spinner</item>
</style>

<style name="StandardSpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem">
    <item name="android:textAppearance">@style/GameDisplayText</item>
    <item name="android:gravity">center_vertical|center_horizontal</item>
</style>

<style name="StandardSpinnerDropDownItem" parent="@android:style/Widget.DropDownItem.Spinner">
    <item name="android:textAppearance">@style/GameDisplayText</item>
</style>
凉宸 2024-09-11 21:53:47

只是一些额外的信息,
为了将主题指向您的应用程序,您需要在 AndroidManifest.xml 中定义它

<application android:icon="@drawable/icon" android:label="@string/app_name"    android:theme="@style/Theme">

你应该重用一些默认样式属性,所以

在values/styles.xml或者你的主题文件的任何地方声明android默认主题作为你的父主题

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme" parent="@android:style/Theme">
         <!-- Widget styles -->
         <item name="android:spinnerStyle">@android:style/Widget.Spinner</item>
         <item name="android:spinnerDropDownItemStyle">@style/Widget.DropDownItem.Spinner</item>
         <item name="android:spinnerItemStyle">@android:style/Widget.TextView.SpinnerItem</item>
    </style>

Just some extra information,
in order to point you theme to your application you need to define it at the AndroidManifest.xml

ex.

<application android:icon="@drawable/icon" android:label="@string/app_name"    android:theme="@style/Theme">

you should reuse some of the defaults styles properties, so declare the android default theme as parent theme of yours

at values/styles.xml or wherever is your theme file

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme" parent="@android:style/Theme">
         <!-- Widget styles -->
         <item name="android:spinnerStyle">@android:style/Widget.Spinner</item>
         <item name="android:spinnerDropDownItemStyle">@style/Widget.DropDownItem.Spinner</item>
         <item name="android:spinnerItemStyle">@android:style/Widget.TextView.SpinnerItem</item>
    </style>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文