自动调整TextView的大小的使用autoSizing
Android 8.0允许根据TextView的大小自动设置文本展开或收缩的大小,这意味着,在不同屏幕上优化文本大小或者优化包含动态内容的文本大小比以往简单多了。
如下图可以简单明了的说明该特性:
具体最简单的使用有两种:
1.一种就是api >= api 26的可以直接在xml里面该属性:
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:autoSizeTextType="uniform" />
在此需要注意的是:使用这个
autoSizeTextType
的时候,控件的layout_width
layout_height
不能使用这个wrap_content
否则看不出什么效果,要使用具体可衡量的。这个也不难理解,因为它要计算,你设置一个模糊的宽和高,就算不出来了。
2. api<26 的低设备 的兼容写法
官方文档里也明确说明了兼容低版本
The library provides support to Android 4.0 (API level 14) and higher.
也就是兼容到4.0以上,写法有些不同,如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
tools:ignore="MissingPrefix"
app:autoSizeTextType="uniform" />
</LinearLayout>
敲黑板重点
你会发现你写完之后编译是报错的,错误类似是这样的:
1516094635.jpg找不到!!!
allprojects {
repositories {
jcenter()
//添加如下内容
maven{
url
}
}
}
另外在查看 Android O
新特性中发现一个比较好玩的东西:现在,findViewById()
函数的全部实例均返回 <T extends View> T,而不是 View。以后就可以这么写啦:
EditText et = findViewById(R.id.et);