【问题标题】:How to change text color dynamically matching user input string如何更改文本颜色动态匹配用户输入字符串
【发布时间】:2013-08-25 20:32:52
【问题描述】:

我今天开始 android 应用程序开发,想制作一个小应用程序,它以一些文本作为输入(一种颜色)并以用户选择的颜色返回文本输入。

我首先以这种方式创建了一个 colors.xml:

<color name="white">#FFFFFF</color>
<color name="yellow">#FFFF00</color>
...

然后我在主活动中创建了一个 EditText,以及一个用于显示彩色文本的活动,包含在 onCreate 中:

Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

// Create the text view
TextView textView = new TextView(this);
textView.setTextSize(70);
textView.setText(message);

效果很好,但我无法设法检索文本字符串并将其与 colors.xml 中的颜色匹配。我在考虑 BASH 中的参数替换,例如:

textView.setBackgroundColor(getResources().getColor(R.color.XXXXXX));

但我不知道该放什么而不是“XXXXXX”,因为放“消息”是行不通的,但放直接颜色名称(例如红色)可以,但只适用于一种颜色。

我尽量避免使用 case 语句,也是因为我想让它对许多颜色尽可能通用。任何人都可以建议这是否可能,以这种方式或以另一种方式。如果这是微不足道的,我很抱歉,但我对 Java 没有太多信心。

提前谢谢你。

【问题讨论】:

    标签: java android text colors


    【解决方案1】:

    查看Colorhere的文档。

    基本上,如果你想从message 字符串中设置颜色,你可以这样做:

    textView.setBackgroundColor(Color.parseColor(message));
    

    我还没有测试过,但它应该可以工作。不需要 colors.xml 文件。 阅读Color 类的文档,不要忘记对IllegalArgumentException 使用parseColor() 方法可以抛出的try-catch

    【讨论】:

      【解决方案2】:

      这个 R.color.XXXXXX 是一个整数。您需要获取整个参数而不仅仅是 XXX,基本上您可以将颜色存储在静态整数变量中,然后根据您的条件使用它们。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2013-08-02
        • 1970-01-01
        • 2015-08-16
        • 2019-10-31
        • 1970-01-01
        • 2012-06-15
        • 1970-01-01
        • 2014-05-10
        • 1970-01-01
        相关资源
        最近更新 更多