使用场景

一个textview中, 展示不同的字体效果

效果展示

autoj版本

原理

SpannableString.setSpan

字体效果全部使用该方法生成

安卓官方文档

https://developer.android.google.cn/reference/android/text/SpannableString?hl=en#setSpan(java.lang.Object,%20int,%20int,%20int)

效果列表

  1. 字符用图片替换
  2. 修改字符背景
  3. 修改字符颜色
  4. 文字添加点击事件
  5. 文字超链接
  6. 中划线
  7. 下划线
  8. 下标
  9. 上标
  10. 下标用图片代替
  11. 字体相对大小
  12. 字体绝对大小
  13. 基于X轴缩放
  14. 字体样式,粗体 BOLD、斜体 ITALIC等
  15. 文本外貌 TextAppearanceSpan family值:monospace serif sans-serif
  16. 文本对齐方式
  17. 模糊BlurMaskFilter INNER
  18. 模糊BlurMaskFilter NORMAL
  19. 模糊BlurMaskFilter OUTER
  20. 模糊BlurMaskFilter SOLID

代码讲解

  1. 布局

    ui.layout(<vertical margin="20"><text id="content" textSize="30sp"></text></vertical>
    );
    
  2. 文字内容

    let spanStr = new SpannableString("...");
    
  3. 修改字体(该步骤不是必须的, 可以忽略)

    tf = Typeface.createFromFile(java.io.File(files.path("./站酷高端黑.ttf")));
    ui.content.setTypeface(tf);
    
  4. 处理后设置textview文字内容

    handleSpanStr(ui.content, spanStr);
    ui.content.setTextSize(random(20, 30));
    ui.content.setText(spanStr);
    

处理SpannableString

  1. 插入图片

    bitmap = BitmapFactory.decodeResource(context.getResources(), icon);
    spanStr.setSpan(new IconMarginSpan(bitmap, 10), 0, 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    
  2. 设置背景颜色

    spanStr.setSpan(new BackgroundColorSpan(Color.YELLOW), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    
  3. 设置字体颜色

    spanStr.setSpan(new ForegroundColorSpan(Color.RED), 3, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    
  4. 设置点击事件

    spanStr.setSpan(new ClickableSpan({onClick: function (widget) {Toast.makeText(context, "你点击了我", Toast.LENGTH_SHORT).show();},}),8,12,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
    );
    view.setMovementMethod(LinkMovementMethod.getInstance());
    
  5. 中划线

    spanStr.setSpan(new StrikethroughSpan(), 27, 29, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    
  6. 下划线

    spanStr.setSpan(new UnderlineSpan(), 29, 32, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    
  7. 绝对大小

    spanStr.setSpan(new AbsoluteSizeSpan(40), 33, 36, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    
  8. 相对大小

    spanStr.setSpan(new RelativeSizeSpan(2), 40, 43, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    
  9. 基于X轴缩放

    spanStr.setSpan(new ScaleXSpan(2), 43, 45, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    

微信公众号 AutoJsPro教程

QQ群

747748653

完整源码

点击查看源码

autojs之酷炫字体效果相关推荐

  1. 自定义动画属性java_创建酷炫动画效果的10个JavaScript库

    原标题:创建酷炫动画效果的10个JavaScript库 1) Dynamics.jsDynamics.js是设计基于物理规律的动画的重要Java库.它可以赋予生命给所有包含CSS 和SVG属性的DOM ...

  2. 【vscode高级玩家】设置酷炫字体Fira Code

    点此查看纯净无广告的原始内容 Fira Code字体是一种适用于编程的等宽字体.使用它可以减少我们在编程时处理逻辑标记的脑力消耗. 问题 Fira Code字体的作者认为开发者们在编程时使用的-> ...

  3. H5 实现酷炫水滴效果

    H5 实现酷炫水滴效果 天马行空般的设计甩到面前,含着泪也要做出来 --百度前端工程师的内心独白 之前接到了一个需求,设计师同事想在网页中使用一个类水滴效果的索引条.Duang,Duang,这醉人的需 ...

  4. Android矢量图动画特效,Android使用SVG矢量图打造酷炫动画效果

    一个真正Android使用SVG矢量图打造酷炫动效往往让人虎躯一震,话不多说,咱们先看看效果: 这个效果我们需要考虑以下几个问题: 1. 这是图片还是文字: 2. 如果是图片该如何拿到图形的边沿线坐标 ...

  5. 照片动感影集制作软件哪个好?如何快速制作精美、酷炫的效果?

    把照片做成动感影集是现在非常流行的照片分享方式.抖音上获得百万赞的照片动感影集,把照片运用上精美酷炫效果后做成的视频.那么,照片动感影集制作软件哪个好?怎么才能快速上手,制作一个效果高大上的动感影集? ...

  6. Lottie 站在巨人的肩膀上实现 Android 酷炫动画效果

    说到动画效果,一般都会感到很高端,感觉很酷炫:而小菜技术有限,稍复杂的动画效果也需要很多时间处理,但是遇到时间紧任务重的情况该怎么办呢?那就尝试一下 Lottie 吧,酷炫的动画集成却相当简单,还支持 ...

  7. 如何把博客园的博客弄出狂拽酷炫的效果

    有时候看别人的博客,明明是博客园的为什么有hexo的效果. 内容已经不重要了,效果真叫一个狂拽酷炫吊炸天. 那种风格我本人并不喜欢,但是很好奇.最终找到了一些文章,万一将来想通了还可以改. 如何美化你 ...

  8. android 添加json动画,Lottie 站在巨人的肩膀上实现 Android 酷炫动画效果

    说到动画效果,一般都会感到很高端,感觉很酷炫:而小菜技术有限,稍复杂的动画效果也需要很多时间处理,但是遇到时间紧任务重的情况该怎么办呢?那就尝试一下 Lottie 是个啥? Lottie 咋集成?bu ...

  9. tree.js 酷炫的效果,人脸识别签到思路,html5 3D微信头像自动抽奖代码

    1.酷炫效果 1.1 网址: https://wow.techbrood.com/fiddle/43962 网址:https://wow.techbrood.com/fiddle/25678 1.2  ...

最新文章

  1. 存储过程--分页与C#代码调用
  2. C#,silverlight中 将颜色字符串的RRGGBB转换成为颜色
  3. asin c语言中 返回值范围_asin()_C语言asin()详解:反正弦函数,求反正弦值
  4. 【知识强化】第一章 操作系统概述 1.1 操作系统的基本概念
  5. 如何将原图和json融合_图像语义分割出的json文件和原图,用plt绘制图像mask
  6. 【ZOJ - 2949】Coins of Luck (概率dp,期望)
  7. css基础媒体查询和rem
  8. 如何使用定时器产生两路频率可调、占空比可调的PWM波
  9. Java 线程实时读取日志文件
  10. vue项目部署iis后 乱码_vue项目的自动化部署
  11. 用一句话阐明epoll跟Windows IOCP之间的区别
  12. 华为监事会副主席丁耘长跑28公里后突发疾病去世,年仅53岁!
  13. Excel智能分析报表案例:某餐饮公司各门店经营现状分析报表
  14. Java讯序_java使用顺序表制作电子通讯录,实现添加,删除和排序的功能.
  15. 磁共振线圈分类_磁共振线圈的发展历程
  16. 麻省理工学院公开课,信号与系统: (一) 引言
  17. python:实现牛顿法算法(附完整源码)
  18. 习题——路由与交换机技术(五)
  19. wps怎么免费导出简历_个人简历免费模板手机编辑,手机wps怎么免费导出简历
  20. Linux驱动:网卡驱动分析之三--MAC驱动及PHY驱动框架了解

热门文章

  1. [WINDOWS]多个文本文件内容合并到一个文本文件中
  2. 常用的手机宽度 前端切图用 常用的手机尺寸
  3. [转]齐善鸿:职业心智训练与管理教育
  4. 电脑重装系统简单小白教程
  5. halcon裁剪图像_【Halcon】Halcon学习之七:改变图像的现实方式和大小
  6. 天地孤影任我行(东邪西毒电影原声曲)铃声 天地孤影任我行(...
  7. wps程序能打开不显示内容
  8. 【C++】struct结构体/构造函数
  9. 十分钟实现鼠标悬停效果,CSS3悬停效果
  10. 涵盖从java入门到深入架构,Linux、云计算、分布式、大数据Hadoop、ios、Android、互联网技术应有尽有