【问题标题】:Android System Color ConstantsAndroid 系统颜色常数
【发布时间】:2012-01-30 14:29:04
【问题描述】:

Android 编程快把我逼疯了。用于 GUI 开发的 XML 或可编程方式正在为代码做一顿正确的老狗早餐——这里有一些东西,那里有一些东西。

我目前的挫败感是试图将其全部保留为 XML,我想将 TextView 的背景颜色设置为与 Button 的背景颜色相同的颜色,而无需指定确切的颜色代码。我想使用一个系统常量,比如java.awt.SystemColor.control,但在 XML 中指定。

有没有这样做而不必重新指定一堆东西?我正在寻找类似的解决方案:android:background="{Insert constant here}"

【问题讨论】:

    标签: android styles


    【解决方案1】:

    您应该在 res/values 中有一个名为 colors.xml 的文件,它应该如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="white">#FFFFFF</color>
        <color name="grey">#7A7A7A</color>
        <color name="background">#0044AA</color>
        <color name="bluelight">#449DEF</color>
        <color name="bluedark">#2F6699</color>
        <color name="greenlight">#70C656</color>
        <color name="greendark">#53933F</color>
        <color name="orangelight">#F3AE1B</color>
        <color name="orangedark">#BB6008</color>
        <color name="black">#000000</color>
    </resources>
    

    然后你可以像这样在 xml 中调用颜色:

    android:background="@color/greenlight"
    

    【讨论】:

    • 但我不想指定颜色。我想指定一个系统样式。
    • 这通常是首选方法,因为系统定义的颜色不多,但是您可以使用 android:background="@android:color/white"。您可以在此处找到完整列表:developer.android.com/reference/android/R.color.html
    • 我有一个 ex 的颜色常数:17170449,我需要将其转换为十六进制十进制代码。可能吗?提前感谢@MattHarris
    【解决方案2】:

    您可以使用“@color/white”之类的东西,或者对于 android 系统常量,“@android:color/holo_red_light”。或者,如果您想要更多控制,您始终可以在可绘制对象中定义一个公共背景并将背景设置为“@drawable/mydrawable”

    可用于 android:color 的资源列表(如 background_dark):http://developer.android.com/reference/android/R.color.html

    【讨论】:

    • 这是我在使用 Android 时遇到的问题。我不想自己重新定义一切。我想在系统上使用标准。我不在乎这些标准是什么,我只想要类似的用户外观和感觉。
    • 这正是您应该使用 android:color/ 的原因......有很多现有的预设不是颜色特定的,并且会根据制造商而改变。用链接更新答案
    • 请注意,您的示例不正确,没有“@android:color/red”
    • 更正你是@RedLenses ...将答案更新为文档中的有效值之一:)
    • 嗨@JoelMartinez 能否请您展示在背景中使用小图像作为重复的示例。我是这样做的 - gist.github.com/Noitidart/be2857ca33e83498ab34b78c13a48ca1 - 它不适合我。
    【解决方案3】:

    查看此页面:http://android-er.blogspot.com/2010/03/using-color-in-android.html

    您可以在 xml 中使用:“@android:color/white”。我想还支持其他一些常见的颜色,但我不确定是哪些颜色。

    首选的解决方案通常是创建您自己的 colors.xml 资源文件并引用您放入其中的资源文件。

    【讨论】:

      【解决方案4】:

      这样使用:android:background="#FF00FF"

      【讨论】:

        【解决方案5】:

        您不需要使用 xml 文件来创建常量的 XML,

        它可以帮助您: Java constants file

        【讨论】:

        • 我想用 XML 而不是 Java。我可以通过 Java 编程获得颜色,但其目的是使用 XML 进行 GUI 设计,并将所有这些都放在一个位置。我不希望我的 GUI 一半是 XML,一半是 Java。
        猜你喜欢
        • 1970-01-01
        • 2012-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-19
        • 2011-10-24
        相关资源
        最近更新 更多