热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidTextView:实现多彩文字与多样化字体效果

在探讨如何在Android的TextView中实现多彩文字与多样化字体效果时,本文提供了一种不依赖HTML技术的解决方案。通过使用SpannableString和相关的Span类,开发者可以轻松地为文本添加丰富的样式和颜色,从而提升用户体验。文章详细介绍了实现过程中的关键步骤和技术细节,帮助开发者快速掌握这一技巧。

好的,所以我认为这应该是一个相当简单的过程.

我已阅读以下问题:

在所有这些问题和答案中,建议似乎都非常相似.我试图避免使用HTML技术,而是改用SpannableString和SpannableStringBuilder.最终,我希望能够在单个TextView中使用多个不同的字体,但是现在,我只想弄清楚如何使多种颜色起作用.

我正在尝试以这种方式实现这些技术:

// Get a typeface for my custom font

String regularFontPath = "fonts/Abel-Regular.ttf";

Typeface regularTf = Typeface.createFromAsset(getActivity().getAssets(), regularFontPath);

// Set the label's typeface (this part is working)

mItemCodesLabel.setTypeface(regularTf);

// Create a spannable builder to build up my

// TextView's content from data

SpannableStringBuilder builder = new SpannableStringBuilder();

// These colors are defined and working well in other parts of my app

ForegroundColorSpan ltGraySpan = new ForegroundColorSpan(R.color.light_gray);

ForegroundColorSpan dkGraySpan = new ForegroundColorSpan(R.color.dark_gray);

// mCodesList has good data and the actual data output from this

// loop is correct. Just the styling is wrong

for (int i = 0; i

ParseObject code = mCodesList.get(i);

String value = code.getString("value") + " | ";

if (i > 0) {

// I want new codes to be on a new line (this works)

value = "

" + value;

}

SpannableString valueSpan = new SpannableString(value);

valueSpan.setSpan(ltGraySpan, 0, value.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

builder.append(valueSpan);

String loc = code.getString("location");

SpannableString locSpan = new SpannableString(loc);

locSpan.setSpan(dkGraySpan, 0, loc.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

builder.append(locSpan);

}

mItemCodesLabel.setText(builder);

最终结果是TextView包含正确的文本内容. TextView是正确的字体.但是TextView的全部内容都是我的@ color / light_gray颜色.我不确定为什么,因为在XML布局文件中,我指定了@ color / dark_gray颜色(希望通过设置Spannable设置文本来覆盖该颜色).即使我将两个ForegroundColorSpan对象都更改为使用R.color.dark_gray,TextView仍然显示为浅灰色.我没有在代码的其他任何地方设置文本的颜色,所以我真的很茫然.

我在运行4.4.2的LG Optimus G Pro上运行它.我还有另一个TextView,我需要在其中获得多种颜色和字体,甚至在文本的某些部分下划线,所以对我来说这是一个很大的问题.我要去哪里错了?



推荐阅读
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • 如何高效创建和使用字体图标
    在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
author-avatar
白羊黔中草
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有