在strings.xml中更改颜色

7 浏览
0 Comments

在strings.xml中更改颜色

我刚开始学习安卓,想知道如何在strings.xml文件中的string标签中更改字体的颜色。

例如,我有以下代码:

  Hello world!

我只想将其显示为红色和蓝色。

谢谢

0
0 Comments

问题出现的原因是需要在strings.xml文件中改变文本的颜色,但是没有提供直接更改颜色的选项。解决方法是在字符串文本的开头和结尾添加标签,并在标签中指定所需的颜色。例如,如果要将文本显示为蓝色,可以使用以下代码:Hello world!。同样,如果要将文本显示为红色,可以使用以下代码:Hello world!

需要注意的是,使用这种方法的人应该使用Resources.getText(id:)方法来获取字符串,而不是Resources.getString(id:)方法。前者方法保留字符串中的任何富文本样式,而后者则不会。此外,您还可以使用十六进制颜色代码来指定颜色,Hello world!Hello world!效果是一样的。

0
0 Comments

Change color inside strings.xml的问题是想要直接在strings.xml中添加颜色而不使用标签的方法。问题的原因是在Android 6.0及以上版本,将颜色直接放在文本中的方法无法生效。解决方法是创建一个函数,用于从xml文件中获取颜色并将其设置在TextView中。

在示例中,字符串的颜色信息直接写在了strings.xml文件中。通过使用标签来设置文本的颜色和透明度。颜色由8个字符组成,前两个字符表示透明度,后面的字符表示颜色。

为了解决Android 6.0及以上版本无法直接在文本中设置颜色的问题,可以使用下面的函数来获取颜色并设置在TextView中:

public static int getColorWrapper(Context context, int id) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        return context.getColor(id);
    } else {
        return context.getResources().getColor(id);
    }
}

这个函数中,首先判断当前的Android版本是否是6.0及以上,如果是,则使用context.getColor(id)来获取颜色;如果不是,则使用context.getResources().getColor(id)来获取颜色。

使用这个函数的示例代码如下:

TextView status = (TextView)findViewById(R.id.tvstatus);
status.setTextColor(getColorWrapper(myactivity.this, R.color.status_stop));

在这个示例中,通过调用getColorWrapper函数来获取颜色,并将其设置为TextView的文本颜色。

,Change color inside strings.xml的问题出现的原因是在Android 6.0及以上版本无法直接在文本中设置颜色。解决方法是创建一个函数来获取颜色并将其设置在TextView中。

0
0 Comments

问题的出现原因是希望在strings.xml文件中改变文本的颜色,以便在代码中使用。解决方法是使用CDATA标签将所需的文本包裹起来,并在java代码中使用Html.fromHtml()方法来显示文本的颜色。

文章内容如下:

在Android开发中,我们经常需要在应用程序中改变文本的颜色。通常情况下,我们可以通过在代码中设置颜色或使用xml属性来实现这一目的。但是,有时我们希望在strings.xml文件中改变文本的颜色,并在代码中使用。下面是一种实现这一目标的方法。

首先,在strings.xml文件中,我们可以创建一个名为hello_worldRed的字符串资源,并将需要改变颜色的文本放在CDATA标签中。例如,要设置红色颜色,可以使用以下代码:

Hello world!]]>

同样的,我们可以创建一个名为hello_worldBlue的字符串资源,并在CDATA标签中放置需要改变颜色的文本。例如,要设置蓝色颜色,可以使用以下代码:

Hello world!]]>

然后,在java代码中,我们可以通过以下方式来显示文本的颜色。首先,我们需要找到对应的TextView控件。例如,要显示红色文本,我们可以使用以下代码:

//红色文本
TextView redColorTextView = (TextView)findViewById(R.id.redText);
String redString = getResources().getString(R.string.hello_worldRed)
redColorTextView.setText(Html.fromHtml(redString));

同样的,我们可以找到显示蓝色文本的TextView控件,并使用以下代码来显示文本的颜色:

//蓝色文本
TextView blueColorTextView = (TextView)findViewById(R.id.blueText);
String blueString = getResources().getString(R.string.hello_worldBlue)
blueColorTextView.setText(Html.fromHtml(blueString));

需要注意的是,在文本中使用标签时,不要忘记使用标签来关闭标签。

另外,需要注意的是,从Android 7.0开始,单参数的fromHtml方法已经被弃用。如果需要了解更多信息,请参考链接或官方文档。

如果我们只想改变字符串的一部分而不是整个字符串的颜色,可以将需要改变的部分用标签包裹起来即可。

至于为什么不能在中设置颜色ID,可能是因为在strings.xml文件中无法直接引用资源文件中的颜色ID。

0