Android TextView 设置文字背景色或文字颜色,字体阴影,字体样式
String str=
"这是设置TextView部分文字背景颜色和前景颜色的demo!"
;
int
bstart=str.indexOf(
"背景"
);
int
bend=bstart+
"背景"
.length();
int
fstart=str.indexOf(
"前景"
);
int
fend=fstart+
"前景"
.length();
SpannableStringBuilder style=
new
SpannableStringBuilder(str);
style.setSpan(
new
BackgroundColorSpan(Color.RED),bstart,bend,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
style.setSpan(
new
ForegroundColorSpan(Color.RED),fstart,fend,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
TextView tvColor=(TextView) findViewById(R.id.tv_color);
tvColor.setText(style);
动态TextView文本内容:
<string name="str_text1">上期抄表%1$s度,本期抄表%2$s度</string>
textView1.setText(getResources().getString(R.string.str_text1,120+"",200+""));
private void setSpann(){//1ForegroundColorSpan 文本颜色(前景色)SpannableString spannableString = new SpannableString("我是一个无聊的文本,啦啦啦啦啦啦");ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#0099EE"));spannableString.setSpan(colorSpan, 9, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n1");textView3.setText(spannableString);//2BackgroundColorSpan 背景色spannableString.setSpan(new BackgroundColorSpan(Color.parseColor("#0099EE")), 6, spannableString.length(), spannableString.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n2");textView3.append(spannableString);// 3. ClickableSpan: 点击事件相关的Span。ClickableSpan clickableSpan = new ClickableSpan() {@Overridepublic void onClick(View widget) {Toast.makeText(MainActivity.this, "click", Toast.LENGTH_SHORT).show();Log.e("Easy", "click");}};spannableString.setSpan(clickableSpan, 7, 11, Spannable.SPAN_INCLUSIVE_INCLUSIVE) ;textView3.setMovementMethod(LinkMovementMethod.getInstance());textView3.append("\n3");textView3.append(spannableString);//4MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)int length = spannableString.length();//模糊(BlurMaskFilter)MaskFilterSpan maskFilterSpan = new MaskFilterSpan(new BlurMaskFilter(3, BlurMaskFilter.Blur.OUTER));spannableString.setSpan(maskFilterSpan, 0, length - 10, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);//浮雕(EmbossMaskFilter)maskFilterSpan = new MaskFilterSpan(new EmbossMaskFilter(new float[]{1,1,3}, 1.5f, 8, 3));spannableString.setSpan(maskFilterSpan, length - 10, length, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n4");textView3.append(spannableString);// 5、MetricAffectingSpan 父类,一般不用// RasterizerSpan 光栅效果
// spannableString.setSpan(new RasterizerSpan(), 0, 7, Spannable.
// SPAN_INCLUSIVE_EXCLUSIVE);
// textView3.append("\n");
// textView3.append(spannableString);// 7StrikethroughSpan 删除线(中划线)spannableString.setSpan(new StrikethroughSpan(), 0, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n7");textView3.append(spannableString);// 8、SuggestionSpan
// 相当于占位符,一般用在EditText输入框中。当双击此文本时,会弹出提示框选择一些建议(推荐的)文字,选中的文本将替换此占位符。在输入法上用的较多。
// PS:API 14新增,暂无示例。//9UnderlineSpan 下划线spannableString.setSpan(new UnderlineSpan(), 0, spannableString.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n9");textView3.append(spannableString);// 10AbsoluteSizeSpan 绝对大小(文本字体)spannableString.setSpan(new AbsoluteSizeSpan(20, true), 0, 7,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n10");textView3.append(spannableString);// 11、DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。DynamicDrawableSpan drawableSpan =new DynamicDrawableSpan(DynamicDrawableSpan.ALIGN_BASELINE) {@Overridepublic Drawable getDrawable() {Drawable d = getResources().getDrawable(R.mipmap.ic_launcher);d.setBounds(0, 0, 50, 50);return d;}};DynamicDrawableSpan drawableSpan2 = new DynamicDrawableSpan(DynamicDrawableSpan.ALIGN_BOTTOM) {@Overridepublic Drawable getDrawable() {Drawable d = getResources().getDrawable(R.mipmap.ic_launcher);d.setBounds(0, 0, 50, 50);return d;}};spannableString.setSpan(drawableSpan, 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);spannableString.setSpan(drawableSpan2, 7, 8, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n11");textView3.append(spannableString);// 12ImageSpan 图片Drawable d = getResources().getDrawable(R.mipmap.ic_launcher);d.setBounds(0, 0, 50, 50);spannableString.setSpan(new ImageSpan(d), 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n12");textView3.append(spannableString);//13、RelativeSizeSpan 相对大小(文本字体)//参数proportion:比例大小spannableString.setSpan(new RelativeSizeSpan(2.5f), 3, 4,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n13");textView3.append(spannableString);// 14、ReplacementSpan 父类,一般不用// 15、ScaleXSpan 基于x轴缩放// 参数proportion:比例大小spannableString.setSpan(new ScaleXSpan(3.8f), 3, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n15");textView3.append(spannableString);// 16、StyleSpan 字体样式:粗体、斜体等//Typeface.BOLD_ITALIC:粗体+斜体spannableString.setSpan(new StyleSpan(Typeface.BOLD), 3, 7,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n16");textView3.append(spannableString);// 17、SubscriptSpan 下标(数学公式会用到)spannableString.setSpan(new SubscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n17");textView3.append(spannableString);// 18、SuperscriptSpan 上标(数学公式会用到)spannableString.setSpan(new SuperscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n18");textView3.append(spannableString);// 19、TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)//若需自定义TextAppearance,可以在系统样式上进行修改spannableString.setSpan(new TextAppearanceSpan(this, android.R.style.TextAppearance_Medium),6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n19");textView3.append(spannableString);// 20、TypefaceSpan 文本字体//若需使用自定义字体,可能要重写类TypefaceSpanspannableString.setSpan(new TypefaceSpan("monospace"), 3, 10,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.append("\n20");textView3.append(spannableString);// 21、URLSpan 文本超链接spannableString.setSpan(new URLSpan("http://orgcent.com"), 10, spannableString.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textView3.setMovementMethod(new LinkMovementMethod());textView3.append("\n21");textView3.append(spannableString);//让URLSpan可以点击}
部分字体着色
代码:
String sms = "审计系统在线";
String sjs = "审计系统在线";
int fstart = 4;
int fend = 6;
if (sms.contains("在线")) {SpannableStringBuilder style = new SpannableStringBuilder(sms);style.setSpan(new ForegroundColorSpan(Color.rgb(166, 116, 50)), fstart, fend, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);nethomesmstatus.setText(style);
} else {nethomesmstatus.setText(sms);
}
效果:
字体阴影
textView.setShadowLayer(2,6,20,R.color.colorPrimary);//清晰度,偏移量,最后一个无效参数
字体样式
字体类型
Typeface.DEFAULT:默认字体,常规字体类型
Typeface.DEFAULT_BOLD:黑体字体类型
Typeface.MONOSPACE:等宽字体类型
Typeface.SANS_SERIF:sans serif字体类型
字体样式
Typeface.BOLD //粗体
Typeface.BOLD_ITALIC //粗斜体
Typeface.ITALIC //斜体
Typeface.NORMAL //常规
textView.setTypeface(Typeface.DEFAULT, Typeface.BOLD_ITALIC );
//下划线
textView.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG );
//抗锯齿
textView.getPaint().setAntiAlias(true);
//中划线
textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG);
// 设置中划线并加清晰
textview.setFlags(Paint. STRIKE_THRU_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG);
holder.odlte.setPaintFlags(Paint. STRIKE_THRU_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG);
//字体加粗
textView.getPaint().setFakeBoldText(true);
Android TextView 设置文字背景色或文字颜色,字体阴影,字体样式相关推荐
- android 自定义menu 背景颜色,Android中设置Menu菜单的文字颜色为白色
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 开发者交流裙: 188168040 Android中设置Menu菜单的文字颜色为白色,一般情况下,Android中Menu菜单的title文字颜色为黑色, ...
- android textview 字体颜色设置,Android textview 设置不同的字体大小和颜色
在实际应用中,需要将一个字符串已不同的颜色,字体显示出来.当然完全可以通过不同textview拼接出来.也可以通过一个textview来展示. 步骤如下: 1.定义不同style . 不妨如下定义2个 ...
- android TextView设置字体颜色
今天,简单讲讲如何设置TextView的字体颜色. 其实很简单,不过之前忘记了,所以还是记录,总结一下. TextView的字体设置方法: 1.直接通过配置文件设置 2.在Activity类中进行设置 ...
- android+设置字体行高,android textview设置字体的行距和字间距
android textview设置字体的行距和字间距 字间距 textView有一个属性android:textScaleX是调节字间距的,它的值是一个float型.查看源代码,默认textView ...
- android ratingbar 高度,Android RatingBar终极解决方案,大小、颜色、间距、样式随便定义...
用过RatingBar的都知道,这玩意比较坑,不好调整大小.间距.颜色及样式等难以自定义.这里给出一个RatingBar的终极解决方案-AndRatingBar. AndRatingBar开源库,它继 ...
- android 中TextView设置部分文字背景色和文字颜色
通过SpannableStringBuilder来实现,它就像html里边的元素改变指定文字的文字颜色或背景色 public class MainActivity extends Activity { ...
- Android TextView设置部分文字的颜色字体和大小
目录 一,通过Html实现 1,例如实现如下效果 2,为一段文字中某些字单独设置字体大小 3,设置字体 二,通过Span 相关知识 前言 有时候一个TextView显示很多文字,所有文字颜色,字体,大 ...
- Android TextView设置自动识别的超链接字体颜色,及自身点击事件无响应的解决办法
前言 我们在给TextView设置超链接的时候,可能最简单的,Android已经给出了一个非常的简单的做法就是: 在xml中设置: <!--all表示匹配所有,web表示匹配网址 --> ...
- android textview 设置字体,Android TextView设置字体风格
在开发应用过程中经常会遇到显示一些不同的字体风格的信息犹如默认的LockScreen上面的时间和充电信息.对于类似的情况,可能第一反应就是用不同的多个TextView来实现,对于每个TextView设 ...
最新文章
- @scheduled cron启动后和每小时执行_小耶哥: 一个Redis分布式锁又要和小鑫同学扯半个小时!...
- 跟着iMX28x开发套件学linux-02
- Django - Django框架 简单介绍
- QUIC技术创新 让视频和图片分发再提速
- Python高级——Web静态服务器(面向对象)
- directui 3d界面引擎_美术设计师浅谈AR/VR中3D建模设计的工具、挑战与区别
- [Ubuntu] 16.04 上使用 pip 安装 mysqlclient
- 泰安的雾霾确实有点大
- 从零开始用Python3做数据分析
- C# ChartControl
- Python培训包食宿
- ubuntu20.04安装opencv4
- 圆柱体积怎么算立方公式_圆柱的立方计算公式
- 产品经理天马行空,表格组件应对自如
- html如何在字段前面空格怎么打,css特殊空格符号 nbsp前面那个怎么打
- 适合小白的LayaAir使用说明(创建laya的简易程序教程1.0)
- 如何写论文的report(一)
- leetcode——回溯
- 币值最大化问题 C++C++
- Springboot考研网上辅导系统fu1ei计算机毕业设计-课程设计-期末作业-毕设程序代做
热门文章
- [vue] 说说你对MVC、MVP、MVVM模式的理解
- [css] 怎么实现移动端的边框0.5px?
- 工作272:上传部分代码优化之两种上传视频的方式
- “约见”面试官系列之常见面试题第二十七篇之vue-router的重要属性
- 前端学习(1774):前端调试之local storage原理和查看
- Oracle从小白到大牛的刷题之路(建议收藏学习)
- 前端学习(1421):ajax请求参数的格式类型
- 75 jsp基础语法汇总
- (转)Thrift在Windows及Linux平台下的安装和使用示例
- oracle 安装display,Linux安装Oracle 11时报错DISPLAY解决方案