ImageView.src 在布局中 XML 阻塞主线程
ImageView.src in layout XML blocks main thread
我想要一个图片背景。当我将根元素的背景属性设置为图片时,由于宽高比不同,它被扭曲了。阅读 Whosebug 答案后,我将其更改为,
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/wallpaper1"/>
图片为 300KB 全高清图片。看起来不错,但问题是当我启动 activity 时,有卡顿和警告消息。
I/Choreographer: Skipped 38 frames! The application may be doing too much work on its main thread.
当我去掉ImageView的时候,就没有这个问题了。我不应该在布局 XML 中使用 'src' 并使用后台线程自行加载图像吗?
尝试将图像转换为.webp格式以减小图像尺寸,并使用无损编码类型以保持图像质量。
在Android工作室
1. right click on image asset
2. click Convert to WebP
3. 选择使用无损编码并点击 (API 18+)
我想要一个图片背景。当我将根元素的背景属性设置为图片时,由于宽高比不同,它被扭曲了。阅读 Whosebug 答案后,我将其更改为,
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/wallpaper1"/>
图片为 300KB 全高清图片。看起来不错,但问题是当我启动 activity 时,有卡顿和警告消息。
I/Choreographer: Skipped 38 frames! The application may be doing too much work on its main thread.
当我去掉ImageView的时候,就没有这个问题了。我不应该在布局 XML 中使用 'src' 并使用后台线程自行加载图像吗?
尝试将图像转换为.webp格式以减小图像尺寸,并使用无损编码类型以保持图像质量。
在Android工作室
1. right click on image asset
2. click Convert to WebP
3. 选择使用无损编码并点击 (API 18+)