资讯专栏INFORMATION COLUMN

Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放T

tinna / 1219人阅读

摘要:新特性实战自动缩放出来很久了,这个新特性已经用了很久了,但是一直没有亲自去试试。结束完整的代码在上,点击查看

Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView

8.0出来很久了,这个新特性已经用了很久了,但是一直没有亲自去试试。这几天新的需求来了,需要显示用户的金币,默认是大字体展示,但是又要求用户的金币过多(例如: 9999999 金币)时不能超出布局范围,所以需要在用户金币过多时为了将金币显示出来,需要减小字体大小。这样的需求真的和这个新特性很吻合,于是借此机会写了个简单的demo,现在分享出来,当然你也可以查看官方文档:
https://developer.android.com/guide/topics/ui/look-and-feel/autosizing-textview.html

1. 先看看效果图

如果图挂了可以看我的博客园同步发布的文章:
http://www.cnblogs.com/didikee/p/7873827.html

2. 使用条件

新特性支持 android8.0
当然,你也可以使用Support library,但是必须是26.0.0及其以上,我这里使用的是目前最新的 26.1.0

implementation "com.android.support:appcompat-v7:26.1.0"
3. 三个API使用说明
private void initScaleConfig() {
        //TODO config scale params for normal textView
        /**
         * android:autoSizeTextType="uniform"
         * the type of auto-size. Must be one of
         *        {@link TextViewCompat#AUTO_SIZE_TEXT_TYPE_NONE} or
         *        {@link TextViewCompat#AUTO_SIZE_TEXT_TYPE_UNIFORM}
         *        none: 关闭缩放功能
         *        uniform: 垂直方向与水平方向缩放
         */
        TextViewCompat.setAutoSizeTextTypeWithDefaults(tv_scale, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);

        /**
         * 参数一: 被设置的TextView
         * 参数二: 自动缩放的最小字号
         * 参数三: 自动缩放的最大字号
         * 参数四: 参数二与参数三所用的单位,这里因为字体大小,所以我指定为SP
         */
        TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(tv_scale,
                12, 48, 2, TypedValue.COMPLEX_UNIT_SP);

        /**
         * 参数一:
         * 参数二: 设置多个预制字体大小,这样在缩放时字体会根据预制的字体大小而缩放
         * 参数三: 参数二里面的Int值对应的单位,这里因为字体大小,所以我指定为SP
         */
        int[] autoTextSize = getResources().getIntArray(R.array.autosize_text_sizes);
        TextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(tv_scale, autoTextSize, TypedValue.COMPLEX_UNIT_SP);
    }

具体参数说明我写在了注释上了,应该很详细了。

结束

完整的代码在Gist上,点击查看:
https://gist.github.com/didikee/c846adf08c2be3c5a69e633536a60e12

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/14045.html

相关文章

  • Android攻略

    摘要:但是,还有一需求点击断句我们需要判断用户的点击,定位到所点击的整句话,然后再将整句内容带来了哪些新东西今年的上谷歌发布了新版本的,但是我们并没有从中得到多少信息,只有一篇非常简陋的博客。 Android自定义View播放Gif动画 GIF是一种很常见的动态图片格式,在Android中它的使用场景非常多,大到启动页动画、小到一个Loading展示,都可以用GIF动画来完成,使用也很方便,...

    zhisheng 评论0 收藏0
  • Android系统和版本介绍

    摘要:年第一季度,在全球的市场份额首次超过塞班系统,跃居全球第一。正式版本后来由于涉及到版权问题,谷歌将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。 Android系统的发展 Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主...

    jzzlee 评论0 收藏0
  • [译] Android Studio Project Marble: Apply Changes

    摘要:根据文件中的各个类,计算出校验和,并临时保存在主机的一个缓存数据库中。通过对比新编译的文件和之前的文件的校验和,可以在很短的时间内找到更改过的类。这次,它只获取压缩文件的,并保守估计相应之间可能存在的差异。 原文地址:Android Studio Project Marble: Apply Changes 原文作者:Jon Tsao 译文出自:掘金翻译计划 本文永久链接:github.co...

    Juven 评论0 收藏0
  • Android 系统版本和API level的关系表

    摘要:系统版本和的关系表国内百科代号版本发布日期安全性更新年月日不支持年月日不支持纸杯蛋糕年月日不支持甜甜圈年月日不支持闪电泡芙年月日不支持优格霜淇淋年月日不支持姜饼年月日不支持蜂巢年月日不支持冰淇淋三明治年月日不支持果冻豆年月日不支持奇巧巧克Android 系统版本和API level的关系表 wiki: https://zh.wikipedia.org/wiki/Android%E6%AD%B...

    alaege 评论0 收藏0
  • Android项目实战-博学谷》应用图标&欢迎界面

    摘要:前言本项目使用作为开发工具,参照传智播客教材项目实战博学谷创建项目可参照落萚简书文集安全卫士开发笔记,里面详细讲述过项目的创建以及上传,在此不再赘述应用图标自适应图标为新增的一种全新应用图标样式,具体可以参照设计师兼开发者的以下三篇文章英文 前言 本项目使用Android Studio 3.0.1作为开发工具,参照传智播客教材《Android项目实战——博学谷》 创建项目 可参照落萚...

    zhunjiee 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<