首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用多色显示数字数组

用多色显示数字数组
EN

Stack Overflow用户
提问于 2015-06-25 09:49:21
回答 4查看 68关注 0票数 0

如何在对话框中用多色显示数字数组

示例:

代码语言:javascript
运行
复制
      arr[] = {1, 2, 3, 4, 5 , 6, 7, 8, 9}

在对话框中,显示:

代码语言:javascript
运行
复制
arr= 1 2 3 4 5 6 7 8 9

红色1件,蓝色2件,绿色3件.我尝试在RelativeLayout中添加Textview,但直到现在,我不知道如何添加?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-06-25 09:54:46

斯潘允许您添加这样的attributes.Here是一个很小的例子。

代码语言:javascript
运行
复制
TextView TV = (TextView)findViewById(R.id.mytextview01);
 Spannable word = new SpannableString(" 1");        

 word.setSpan(new ForegroundColorSpan(Color.BLUE), 0, word.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

 TV.setText(word);
 Spannable wordTwo = new SpannableString(" 2");        

 wordTwo.setSpan(new ForegroundColorSpan(Color.RED), 0, wordTwo.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
 TV.append(wordTwo);

还可以使用Html设置颜色。

代码语言:javascript
运行
复制
String text = "<font color=#cc0029> 1</font> <font color=#ffcc00> 2</font>";
TV.setText(Html.fromHtml(text));
票数 0
EN

Stack Overflow用户

发布于 2015-06-25 10:00:12

你可以使用Spannable。设置ForegroundColorSpan您需要定义颜色和字符间隔,例如

代码语言:javascript
运行
复制
TextView textView = (TextView) findViewById(R.id.textview);
    Spannable spannableText = new SpannableString("1 2 3");
    spannableText.setSpan(new ForegroundColorSpan(Color.RED), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    spannableText.setSpan(new ForegroundColorSpan(Color.GREEN), 2, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    spannableText.setSpan(new ForegroundColorSpan(Color.BLUE), 4, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(spannableText);
票数 0
EN

Stack Overflow用户

发布于 2015-06-25 10:08:12

所提供的解决方案将有效,但如果已经存在颜色资源类型,则使用字符串表示颜色是错误的。相反,请执行以下操作:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="bright_pink">#FF007F</color>
<color name="red">#FF0000</color>
<color name="orange">#FF7F00</color>
<color name="yellow">#FFFF00</color>
<color name="chartreuse">#7FFF00</color>
<color name="green">#00FF00</color>
<color name="spring_green">#00FF7F</color>
<color name="cyan">#00FFFF</color>
<color name="azure">#007FFF</color>
<color name="blue">#0000FF</color>
<color name="violet">#7F00FF</color>
<color name="magenta">#FF00FF</color>

<array name="rainbow">
    <item>@color/bright_pink</item>
    <item>@color/red</item>
    <item>@color/orange</item>
    <item>@color/yellow</item>
    <item>@color/chartreuse</item>
    <item>@color/green</item>
    <item>@color/spring_green</item>
    <item>@color/cyan</item>
    <item>@color/azure</item>
    <item>@color/blue</item>
    <item>@color/violet</item>
    <item>@color/magenta</item>
</array>

然后像这样访问它们:

代码语言:javascript
运行
复制
int[] rainbow = context.getResources().getIntArray(R.array.rainbow);

for (int i = 0; i < tileColumns; i++) {
paint.setColor(rainbow[i]);
// Do something with the paint.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31046847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档