autojs之酷炫字体效果

使用场景

一个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例子大全,一千六百多个脚本,简单的到复杂的例子,统统有,小白学完马上变大神,大神学了变超神。 脚本内容包含: 几十种类型的UI脚本,抖音、QQ、微信、陌陌、支付宝等自动化操作的脚本、还有部分协议列表,HTTP协议(POST、GET)上传下载,接码模块,百度文字识别api模块,文件操作模块:txt文本读一行删一行,等等其他例子 【实例截图】 【核心代码】 └─1688 !运动点赞!.js (qq语音红包.js (协议)快阅读.js (可修改王者荣耀启动动画)视频播放器(1).js (实?).js (小瓜)九州行(720x1440)多账号游戏辅助.js -控件集合.js -控件集合2.js 0(1).js 0(2).js 0.js 00-仿真曲线滑动2.js 00-关闭指定应用-通用版.js 00-本地时间及网络时间验证改版.js 00-正则匹配关闭应用-适用大部分手机(1).js 00-正则匹配关闭应用-适用大部分手机.js 00-简化点击控件.js 00-结束事件与结束应用(1).js 00-结束事件与结束应用.js 00-读&删指定文本行.js 00-读取txt文本每一行&去空格.js 00-通知相册.js 001-Hello JS.js 002-if条件.js 003-循环break.js 004-循环for.js 005-循环while.js 0根据图色点击.js 0计分器.js 1(1).js 1.js 1024下载.js 11.js 111.js 11111111111.js 12.js 1233.js 1543275531466-mysl.js 18禁 小撸怡情,大撸伤身.js 190620_计算器.js 1gps码表.js 1别踩白块.js 1当前页面所有文字内容.js 1怎样动态增加text标签.js 1截图脚本.js 1提取QQ收藏完整内容.js 1改变字体颜色大小和内容.js 1易码获取短信.js 1查询本机IP地理位置.js 1比1比4悬浮窗可限制显示行数.js 1求交集.js 1爬取bilibili视频弹幕.js 1箭头函数和function的this对比.js 1鸣人分身.js 2.0示例脚本合集.js 2.js 2.离线文字转语音~发声器.js 2018-05-16.js 2018年刑侦科推理题.js 2019-10-13蚂蚁森林.js 2048全自动(1).js 2048全自动.js 2048游戏机(1).js 2048游戏机(2).js 2048游戏机(3).js 2048游戏机(4).js 2048游戏机.js 2048游戏机UI版.js 2048玲珑棋局.js 2与 y960对比颜色找顶点.js 3d视角.js 6.0start(1).js 6.0start(2).js 6.0start(3).js 6.0start.js 643个城市数组.js 6(0.51).js 8.0打开关闭网络usb共享.js 9420-麦小兜(1).js 99乘法表.js a5main.js activity.js AD790179-8D8A-4CC6-BF68-25D58C7FD745.js adb5037常用命令.js aes加解密000.js AES加解密demo.js after work.js AJ-网易云签到.js AJ_api_search(1).js AJ_api_search.js aj内置文件管理.js AJ功能搜索(1).js AJ功能搜索.js aj数据文件管理.js Alipay_collect_energy_Optimize.js Animal.js Ant_forest.js apk打包成js格式.js(1).js apk打包成js格式.js.js app启动停止和输入(2)(1).js app启动停止和输入(2).js Auto.JS悬浮按钮(第二版).js Auto.JS悬浮按钮大柒(第二版).js Auto.js悬浮知识点.js Auto.js教程浏览器.js auto.js无root取短信.js autoGetCatCoin.js autojs常用函数(1).js autojs开启无障碍.js Autojs悬浮按钮(全版本可用).js Autojs悬浮按钮.js autojs爬取百度贴吧.js AvlTree(平衡树).js AvlTree.js badapple.js Base64(1).js base64.js Base64_Codec.js base64和des.js bmob上传文件.js bmob用户表的增删改查.js bmob用户验证demo.js bmob示例-对象的增删改查.js caiji.js Calender.js canvas画正方形.js ceshi.js click控件获取坐标位置.js ColorMatrix处理图片↘颜色矩阵.js ColorMatrix颜色矩阵的用法.js common(1).js common.js config.js DailyTask.js DensityUtil.js didi.js digit.js dou_yin_yang_hao(1).js dou_yin_yang_hao.js download.js drawBitMap之平移佐罗.js dy.js dy抖音评论.js en.js enable.js exec的实践.js fab.js fenduan.js Fermat素性测试.js file_chooser_dialog.js FlashPictureGet(1).js Fuck加密机(不支持注释不支持双斜杠不支持ui).js funnyEncoderPlus2.0.js gestures动作数据生成.js getPixels参数详解.js gitee-webhook.js git常用命令.js gpsui.js gps时间获取.js HAHA小视频无限撸money(无解说).js hello语音刷房脚本(雷电).js hl4a.js HTTP请求.js http超时返回null.js ID3MusicDealer.js installInfo.js intent安装apk.js Intent生成器(2).js Intent生成器(3).js Intent生成器.js ipv6聊天室.js ipv6聊天室2.0.js.js ip地址查询.js ip地址查询UI.js java.js java代码改成autojs过程.js JD_Captcha_Test.js jimu.js jm_plp.js jquery1.js jsdroid.js json格式化.js jsoupDemo.js JS代码加密例子.js js加密器.js js块级作用域.js js查询.js js进阶教程02.js js进阶教程03.js juexin_Qtiao.js LayoutInflater.js leimu.js listView勾选框丢了怎么解决.js list隔行变色.js long.js long2.js ls_socket.js lunar.js LZ动作.js main(1)(1).js main(1)(2).js main(1)(3).js main(1)(4).js main(1).js main(10).js Main(11).js main(12).js main(13).js main(14).js main(2)(1).js main(2).js main(3).js main(5).js main(6).js main(7).js main(9).js main.js match的实践.js md5(1).js
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牙叔教程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值