【问题标题】:Problem setting TextView color设置 TextView 颜色的问题
【发布时间】:2010-09-24 16:48:19
【问题描述】:

这是我的颜色 XML

<resources>
    <drawable name="red">#7f00</drawable>
    <drawable name="blue">#770000ff</drawable>
    <drawable name="green">#7700ff00</drawable>
    <drawable name="yellow">#77ffff00</drawable>

    <drawable name="screen_background_black">#ff000000</drawable>
    <drawable name="translucent_background">#e0000000</drawable>
    <drawable name="transparent_background">#00000000</drawable>

    <color name="solid_red">#ED1C24</color>
    <color name="solid_blue">#0000ff</color>
    <color name="solid_green">#39B54A</color>
    <color name="solid_yellow">#ffffff00</color>

</resources>

这是我的 Java 代码:

if (floatedChange < 0)
                            changeText.setTextColor(R.color.solid_red); //red
                        else
                            changeText.setTextColor(R.color.solid_green); //green

这在我使用 Color.RED 或 Color.GREEN 时有效,但当我使用我自己的颜色时。颜色不显示。

为什么?

【问题讨论】:

    标签: java android xml textview


    【解决方案1】:

    很抱歉回答了一个老问题,但以下是其他有相同问题的人的正确答案: 来自http://developer.android.com/guide/topics/resources/more-resources.html#Color

    Resources res = getResources();
    int color = res.getColor(R.color.opaque_red);
    

    所以只需将您的 Java 代码更改为

    if (floatedChange < 0)
        changeText.setTextColor( getResources().getColor(R.color.solid_red) ); //red
    else
        changeText.setTextColor( getResources().getColor(R.color.solid_green) ); //green
    

    【讨论】:

    • 这是一个更好的答案,因为它直接从资源中获取颜色,而不仅仅是创建新的样式资源
    【解决方案2】:

    这样做:

    在您的 XML 文件中,使用 style

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
       <style name="YourCustomText">
            <item name="android:textColor">#FFFF00</item>
        </style>
    </resources>
    

    然后,在您的 .java 代码中:

    //Here you assign the style that is defined in YourCustomText
    yourTextView.setTextAppearance(this, R.style.YourCustomText);
    

    【讨论】:

    • 我的位于/res/values/color.xml
    • 开头有“
    • 我确实在开头有
    • 秒,我自己去看看。
    • 但我无法访问 R.style.solid_red,因为它是 R.color.solid_red 的一部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    相关资源
    最近更新 更多