Android在一个TextView里显示不同样式的字体
Android 一个 显示 不同 样式 字体 textview
2023-09-27 14:27:46 时间
在同一个TextView里显示不同样式的字体
public void setSpan(Object what, int start, int end, int flags);
样式1:背景色、粗体、字体大小
-
效果
-
Code
TextView textView = (TextView) findViewById(R.id.text_view_font_1); Spannable string = new SpannableString("修改背景色、粗体、字体大小"); // 背景色 string.setSpan(new BackgroundColorSpan(Color.RED), 2, 5, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // 粗体 string.setSpan(new StyleSpan(Typeface.BOLD), 6, 8, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // 字体大小 string.setSpan(new AbsoluteSizeSpan(50), 11, 13, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // 显示 textView.setText(string);
样式2:斜体加粗
-
效果
-
Code
TextView textView = (TextView) findViewById(R.id.text_view_font_1); Spannable string = new SpannableString("Hello TextView"); // 斜体加粗(中文斜体好像没有什么效果) string.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(string);
样式3:字体颜色
-
效果
-
Code
TextView textView = (TextView) findViewById(R.id.text_view_font_1); Spannable string = new SpannableString("设置红色字体"); // 字体颜色 string.setSpan(new ForegroundColorSpan(Color.RED), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(string);
样式4:下划线
-
效果
-
Code
TextView textView = (TextView) findViewById(R.id.text_view_font_1); Spannable string = new SpannableString("带下划线的文字"); string.setSpan(new URLSpan(""), 1, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(string);
样式5:字体宽度(设置字体宽度比)
-
效果
-
Code
TextView textView = (TextView) findViewById(R.id.text_view_font_1); Spannable string = new SpannableString("“胖”文字和“瘦”文字"); string.setSpan(new ScaleXSpan(2.0f), 1, 2, Spannable.SPAN_INCLUSIVE_INCLUSIVE); string.setSpan(new ScaleXSpan(0.5f), 7, 8, Spannable.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(string);
样式6:删除线
-
效果
-
Code
TextView textView = (TextView) findViewById(R.id.text_view_font_1); Spannable string = new SpannableString("把“删除”划掉"); // 删除线 string.setSpan(new StrikethroughSpan(), 2, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(string);
样式7:前景色
-
效果
-
Code
TextView textView = (TextView) findViewById(R.id.text_view_font_1); Spannable string = new SpannableString("设置前景色为红色"); // 前景色 string.setSpan(new ForegroundColorSpan(Color.RED), 6, 7, Spannable.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(string);
样式8:URL
-
效果
-
Code
TextView textView = (TextView) findViewById(R.id.text_view_font_1); final String contact = "Email: kongqw@foxmail.com\n" + "Phone: 188123456789\n" + "Fax: +47-12345678\n" + "HTTP: http://blog.csdn.net/q4878802"; textView.setAutoLinkMask(Linkify.ALL); // or set 'android:autoLink' in layout xml textView.setText(contact);
相关文章
- Android 自定义View
- Android-如何开发一个功能强大的图片选择器
- 构建一个Gods Eye Android应用程序:第1部分 – 收集已安装的Android应用程序
- Android开源项目SlidingMenu学习(二)
- 【面试精华】给你一个白嫖2023新版Android面试题库的机会
- 15个经典面试问题,普通二本的辛酸Android面试之路,分享PDF高清版
- 写给Android App开发人员看的Android底层知识(5)
- android 获取本机SMI卡号码
- 【Android开发】找乐,一个笑话App的制作过程记录
- Android getevent用法详解
- Android面试题-OkHttp3源码分析
- Android中的线程池 ThreadPoolExecutor
- Android jetpack liveData 写一个定时器应用
- 下载好一个android软件之后,怎样自动提示安装?
- Android Studio快捷键-mac版
- 【BLE MIDI】推荐一个 Android 平台开源 MIDI 软件 MidiSheetMusic ( 相关资料 | Android Studio 中导入 Eclipse 源码 )
- Android WebView处理404等错误
- Android 通过ContentProvider数据库更新UI
- Android 一个绚丽的loading动效分析与实现!
- Android 自定义一个可以展开显示更多的文本布局
- 二维码合成,将苹果和安卓(ios和android)合成一个二维码,让用户扫描一个二维码就可以分别下载苹果和安卓的应用
- Flutter Boost 混合开发实践与源码解析(以 Android 为例)
- 一个基于 React Native 的 Android 企业级应用。
- Android 优化APP 构建速度的17条建议