【问题标题】:Android spinner with black text on a dark background深色背景上带有黑色文本的 Android 微调器
【发布时间】:2011-02-28 10:49:21
【问题描述】:

对于带有主题的 Android 活动:

     <android:theme="@android:style/Theme.Light.NoTitleBar">

并且没有其他明确的颜色属性,在摩托罗拉 DroidX(Android 版本 2.3.340.MB810.Verizon.en.US)上,虽然主背景是白色,但微调器和按钮背景是黑色的,带有黑色文本。在大多数其他手机上,微调器和按钮在浅灰色渐变背景上显示为黑色文本。

我是不是做错了什么,或者这可能是 Android 或摩托罗拉的错误?

无论如何,任何人都可以提出一个好的解决方法吗?

【问题讨论】:

    标签: android themes spinner


    【解决方案1】:

    为微调器背景设计您自己的自定义可绘制对象并应用到它。 对于 spinnerbackground.xml 图像,您可以参考 SDK 中的图像。根据您的设计要求重新创建图像

    “Android-sdk\platforms\android-9\data\res\drawable-hdpi\*.png”

    微调器背景.xml

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:state_window_focused="false" android:state_enabled="true"
            android:drawable="@drawable/wlbtn_dropdown_normal" />
        <item
            android:state_window_focused="false" android:state_enabled="false"
            android:drawable="@drawable/wlbtn_dropdown_disabled" />
        <item
            android:state_pressed="true"
            android:drawable="@drawable/wlbtn_dropdown_pressed" />
        <item
            android:state_focused="true" android:state_enabled="true"
            android:drawable="@drawable/wlbtn_dropdown_selected" />
        <item
            android:state_enabled="true"
            android:drawable="@drawable/wlbtn_dropdown_normal" />
        <item
            android:state_focused="true"
            android:drawable="@drawable/wlbtn_dropdown_disabled_focused" />
        <item
            android:drawable="@drawable/wlbtn_dropdown_disabled" />
    </selector>
    

    然后为微调器小部件应用您的自定义可绘制对象:

    <Spinner android:background="@drawable/spinnerbackground"
             android:id="@+id/spinnerIDr"
             android:layout_height="wrap_content" 
             android:layout_width="fill_parent">
        </Spinner>
    

    【讨论】:

    • 谢谢你,Vinayak.B。这是一个很好的建议。但我对这种方法持谨慎态度的原因是应用程序不符合制造商或用户主题的风险。我假设任何平台都会在整体黑底白字或白底黑字等背景下尊重“Theme.Light”。DroidX 似乎是一个例外,将其渲染为深灰色上的黑色。不幸的是,我没有摩托罗拉 DroidX 进行试验,只是从市场上的用户反馈中发现了问题。
    • 是的,我同意您的评论,我的建议是,无论如何您正在按照您的设计标准设计您的应用程序,然后按照您的标准进行完整的设计。当平台允许您这样做时,这对开发人员来说将是一个加分点。谁知道将来(如 DroidX)主题将是什么设计。如果您采用自定义方式,则可以确保它永久保持一致。
    • 再次感谢。你是对的,强迫这个问题可能会更好。有问题的应用是 PhoneTrack:如果有人想就特定设备的可读性问题与我联系。
    猜你喜欢
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 2014-12-01
    • 2023-03-11
    • 2019-10-30
    • 2011-01-16
    相关资源
    最近更新 更多