利用SpannableStringBuilder设置TextView中部分文字的颜色

MainActivity如下:

package cc.testspannablestringbuilder;

import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import android.widget.TextView;
import android.app.Activity;
import android.graphics.Color;
/**
 * Demo描述:
 * 利用SpannableStringBuilder设置TextView中部分文字的颜色
 *
 * 注意事项:
 * mSpannableStringBuilder.setSpan
 * (new ForegroundColorSpan(Color.RED), 1, 3, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
 * 第一个参数:颜色
 * 第二个参数:开始位置
 * 第三个参数:终止位置
 * 第三个参数:SPAN_EXCLUSIVE_INCLUSIVE.用来对第二个和第三个参数进一步限制和说明
 * 此处表示不包含1,但是包含3.从字面意思也很好理解
 */
public class MainActivity extends Activity {
    private TextView mTextView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}
    private void init(){
    	mTextView=(TextView) findViewById(R.id.textView);

        String str=" Hello everyone!";
        SpannableStringBuilder mSpannableStringBuilder=new SpannableStringBuilder(str); 

        mSpannableStringBuilder.setSpan
        (new ForegroundColorSpan(Color.RED), 1, 3, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        mSpannableStringBuilder.setSpan
        (new ForegroundColorSpan(Color.GREEN), 5, 9, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        mTextView.setText(mSpannableStringBuilder);

    }

}

main.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        android:layout_centerInParent="true" />

</RelativeLayout>

 

时间: 2024-09-17 03:39:07

利用SpannableStringBuilder设置TextView中部分文字的颜色的相关文章

设置TextView中文字的超链接

main.xml如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools

Android设置当TextView中的文字超过TextView的容量时用省略号代替

有时候在ListView中显示Textview时由于长度过长而导致text会隔行显示,UI上看起来就比较的不友好. 官方提供了相关的实现单行显示的方法. 只需要下边的设置: textview.setSingleLine(); textview.setEllipsiz(TextUtils.TruncateAt.valueOf("END")); 在xml中设置如下: android:singleLine="true" android:ellipsize="en

Android 开发中根据搜索内容实现TextView中的文字部分加粗

实现方式没有引入任何依赖,轻量级实现需求效果 最近遇到一个需求,需要做一个搜索功能.搜索的内容需要加粗显示. 完成了这个功能后,写下此博客,记录一下实现过程 效果图 首先自定义一个StyleSpan,在StyleSpan里做加粗的等匹配状态的设置 @SuppressLint("ParcelCreator") public class SearchStyleSpan extends StyleSpan { public SearchStyleSpan(int style) { super

string-使用 Spinner 中选择的值设置 TextView 中 text 的大小

问题描述 使用 Spinner 中选择的值设置 TextView 中 text 的大小 我想使用 spinner 设置一个值,然后在onClick方法中给选定项设置一个Remote View TextView 中text的大小.如何实现? String selected; Context context = WidgetConfig.this; static Spinner spinner; ... spinner.setOnItemSelectedListener(this); public

Android TextView中部分文字高亮显示

Android  TextView中部分文字高亮显示 /** * 关键字高亮显示 * * @param context 上下文 * @param text 需要显示的文字 * @param target 需要高亮的关键字 * @param color 高亮颜色 * @param start 头部增加高亮文字个数 * @param end 尾部增加高亮文字个数 * @return 处理完后的结果 */ public static SpannableString highlight(Context

给表格中的文字添加颜色动画教程

Excel2003是一款经典的办公软件,专业的制表软件,其中包括表格制作.公式运算.函数使用.图表制作等强大功能.Excel是办公族必不可少的软件之一.下面为大家分享<Excel2003入门动画教程2.给表格中的文字添加颜色>. 演示动画 操作步骤 设置字体:选中Excel表格中需要设置字体的单元格(区域),鼠标按"格式"工具栏的"字体"框右侧的下拉按钮,在随后弹出的下拉列表中,选择需要的字体即可. 设置字号:选中表格里需要设置字号的单元格(区域),鼠标

fonts-在一个textview中批量修改文本颜色

问题描述 在一个textview中批量修改文本颜色 能不能实现使用一个textview修改多个文本字符串的文本颜色,我用Html.fromHtml尝试失败: textViewPrevChat.append(""n""+Html.fromHtml(""<b>Bold string </b>"")+somestringhere); 运行之后,所有的字体加粗,但是在 中的颜色属性没有改变. 解决方案 使用Sp

怎样用javascript来改变链接中的文字的颜色和字体!!

javascript|链接 今天 经理说客户要把首页的链接的字体的样式改一下,就是要把鼠标 移动到一个链接(就是<a></a>)上面的时候,链接的字体和颜色都要变成 粗体和红色,而且鼠标移开后,颜色仍然不变,我刚开始用样式:a.link:hover {color:#FF0000;font-weight:bold;},但是想这样做的话只是鼠标移上去会变,移开后还是会变成以前的样式,客户的需求是:移上去后就变,移开后仍然保持链接为 粗体和红色.最后我自己用这种方法解决了: 首先,获取链

java-如何给TextView的部分文本添加颜色

问题描述 如何给TextView的部分文本添加颜色 我想改变textview中某些文字的颜色.例如,搜索结果的颜色.我试图使用 ANSI 颜色控件: text.setText(""u001B31;1m"" + ""someText""); 但是没有实现所要的功能.谁有好的建议呢? 解决方案 这段代码可能帮的上你: Spannable WordtoSpan = new SpannableString(""I