package com.mcxtzhang.spandemos; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import android.widget.EditText; import android.widget.TextView; import com.mcxtzhang.zxtcommonlib.ZxtUtils; import static com.mcxtzhang.zxtcommonlib.ZxtUtils.getBfGoodsNameIsActSpannableString; public class MainActivity extends AppCompatActivity { TextView mTv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTv = (TextView) findViewById(R.id.tv); //ForegroundColorSpan span = new ForegroundColorSpan(Color.RED); String source = "13816320845";//源数据 SpannableString spannableString = new SpannableString(source);//构建Span String key = "184"; if (!TextUtils.isEmpty(key)) { for (int i = 0; i < key.length(); i++) { int indexB = source.indexOf(key.charAt(i)); if (indexB > -1) {//匹配到了,加一个spans spannableString.setSpan(/*span*/new ForegroundColorSpan(Color.RED), indexB, indexB + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } } } mTv.setText(ZxtUtils.getFriendColorSpannableString(source, "adsfasdfadsf")); String source2 = "世纪20年代初,人类设计了由人工智能创造的智能机械(简称为智械),其旨在加强生产和创造世界经济繁荣。然而,令人难以置信的事情发生了,智械变得充满恶意,并开始大量生产军用机器人试图毁灭人类。\n" + "各国政府未能阻止智能机械的进攻,因此联合国创建了一个国际维和组织,以反抗智能机械。汇集全世界最优秀最精英的组织被命名为“守望先锋”,其将围绕机器人军队展开一场实力不对称的战争。\n" + "最初的守望先锋队伍有:来自德国的士兵莱因哈特·威尔海姆,瑞典武器工程师托比昂·林德霍姆,两名美国的强化试验士兵——军中至交好友——加布里埃尔·莱耶斯(死神)和杰克·莫里森(士兵76),廖,以及安娜(法老之鹰的母亲)。\n" + "莱耶斯被选为守望先锋的领导者,但其实这个领袖称号实际上有名无实,莫里森磨合了所有人使之成为一个强大战斗力团队。[4]\n" + "俄罗斯士兵与智能机械交战"; /* SpannableString spannableString1 = new SpannableString(source2); spannableString1.setSpan(new BackgroundColorSpan(Color.parseColor("#ffdc5b")), 0, " 活动 ".length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置背景色 spannableString1.setSpan(new AbsoluteSizeSpan(12, true), 0, " 活动 ".length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//改变部分文字大小*/ /*spannableString1.setSpan(new BackgroundColorSpan(Color.parseColor("#ffcc4d")), 0,4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString1.setSpan(new ForegroundColorSpan(Color.WHITE), 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //设置前景色 就是文字颜色 spannableString1.setSpan(new ForegroundColorSpan(Color.parseColor("#66aaaa")), 4, source2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //设置前景色为洋红 */ mTv.setText(getBfGoodsNameIsActSpannableString(source2, true)); EditText et = (EditText) findViewById(R.id.et); et.setHint(ZxtUtils.getTextWithPartSpecialColor(source2, 0,2,Color.BLUE)); } }