Android O新特性之Autosizing TextViews(随着TextView宽高而自动改变文字大小)
来源:互联网 发布:微电影后期软件 编辑:程序博客网 时间:2024/06/05 20:45
Android O已经推出了,想要去研究的童鞋可以看看这个:https://developer.android.google.cn/preview/index.html
这篇文章主要介绍一下新特性之Autosizing TextViews
正如标题所言,根据布局大小来动态改变文字大小
分为三种情况:
- Default 默认
- Granularity 粒度
- Preset Sizes 预设尺寸
先写一个布局如下:
<TextView android:gravity="center" android:textColor="#F00" android:layout_width="match_parent" android:layout_height="200dp" android:text="test" />
Default 默认:
参数android:autoSizeTextType,可选择uniform或none
none的效果和上图一样,而uniform则为
Granularity 粒度:
不仅要设置android:autoSizeTextType,还要设置以下参数:
android:autoSizeMinTextSize="20px"//最小文字大小android:autoSizeMaxTextSize="30px"//最大文字大小android:autoSizeStepGranularity="2sp"//每次文字大小变化的数值而Default则是这些参数都为默认,即minTextSize = 12sp, maxTextSize = 112sp以及 granularity = 1px.
Preset Sizes 预设尺寸
在
res/values/
建立一个arrays.xml,在其中定义:
<?xml version="1.0" encoding="utf-8"?><resources> <array name="autosize"> <item>10sp</item> <item>12sp</item> <item>18sp</item> <item>30sp</item> <item>50sp</item> <item>100</item> </array></resources>
然后在布局中引用:
<TextView android:gravity="center" android:textColor="#F00" android:layout_width="match_parent" android:layout_height="200dp" android:text="test" android:autoSizeTextType="uniform" android:autoSizePresetSizes="@arrays/autosize" />
这时,当TextView自动调整文本大小时,则会使用你定义的数组。
而上面三种操作用代码实现如下(我用的kotlin,如有未用过kotlin的,请移步至http://blog.csdn.net/u013279866/article/details/72473279):
//Default if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { tv.setAutoSizeTextTypeWithDefaults(AUTO_SIZE_TEXT_TYPE_UNIFORM) } //Granularity if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { tv.setAutoSizeTextTypeUniformWithConfiguration(12,122,2,COMPLEX_UNIT_SP) } //Preset Sizes var ints:ArrayList<Int> = ArrayList() ints.add(10) ints.add(12) ints.add(18) ints.add(30) ints.add(50) ints.add(100) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { tv.setAutoSizeTextTypeUniformWithPresetSizes(ints.toArray() as IntArray,COMPLEX_UNIT_SP) }
阅读全文
0 0
- Android O新特性之Autosizing TextViews(随着TextView宽高而自动改变文字大小)
- Android O —— Autosizing TextViews 自动调整文本大小的TextView
- APP开发实战177-Autosizing TextViews(自动调整文字大小的TextViews)
- Android如何让TextView子元素随着父元素的背景变化而改变字体颜色?
- Android开发之App字体大小不随着系统字体大小的改变而改变
- Android 快捷方式语言不随着系统语言改变而改变
- Android O 新特性
- Android O 新特性
- Android O新特性
- Android O 新特性
- Android 自动调整 TextView 文字大小仅显示一行
- 心情随着想法而改变
- 自定义TextView任意长度文本下自动改变文字大小以完全显示
- Android开发库VUtils之文字大小自适应TextView
- android代码中设置EditText的hint字体大小而不改变EditText的文字大小
- Android百度地图,定位图标随着方向的改变而改变
- iPhone开发--子view随着父view的frame大小而自动改变大小
- 设置guake tab改名后不随着内容不同而自动改变 系统ubuntu14.04
- #MVC 、MVVM、MPV简单了解
- 关于在weblogic上部署web项目
- JAVA设计模式总目录
- Easyui-datebox日期控件增加清空按钮
- java jdk tomcat 安装运行
- Android O新特性之Autosizing TextViews(随着TextView宽高而自动改变文字大小)
- ABBYY FineReader 14使用虚拟打印机创建PDF文档
- Vue 路由嵌套
- B/S开发之路,学习方向
- Tensorflow练习2-Word2vec模型计算词语相似度
- java中的for each循环
- 【转】SpringMVC——Controller介绍及常用注解
- CAD转图片怎么设置输出色彩和背景颜色
- 前端安全