Bri*_*Rak 63 layout android android-7.0-nougat
我有一个已发布的应用程序,当新引入的Display size操作系统设置设置为太大值时,在Android N上启动时崩溃.
当我查看logcat时,我看到以下消息:
java.lang.RuntimeException: Canvas: trying to draw too large(106,975,232 bytes) bitmap.
Run Code Online (Sandbox Code Playgroud)
我在第一个Activity中将问题跟踪到ImageView,它显示了一个漂亮的大背景图像.有问题的图像是2048x1066,位于我的通用drawables目录中,因此无论密度如何,都将使用此图像.
当Display size设置为时,一切正常Small.但是当我上去时Default,它就会停止工作.如果我然后用较小的图像交换图像,它可以工作Default,但如果我去Large,它会再次停止工作.
我的猜测是,调整Display size会使您的设备表现得像具有更高像素密度的物理上更小的设备.但我不明白我应该在这做什么.如果我逐渐增加较小的图像以逐渐提高分辨率,那么在实际大型显示器上看起来不会很好.或者我不明白什么?
任何指针都将非常感激.
Joh*_*zén 136
我的情况下,将(高分辨率)飞溅位图从drawable移动到drawable-xxhdpi是解决方案.
我有同样的问题.我不怀疑我的启动画面是问题,因为它是当应用程序开始显示出来,但事实证明,闪屏的问题.
在我的情况下,启动画面有xxhdpi分辨率,它被错误地放在drawable文件夹中,而不是drawable-xxhdpi.这使Android假设启动画面具有mdpi分辨率并将图像缩放到所需大小的3*3倍并尝试创建位图.
kaz*_*mad 11
我不知道它会对某人有所帮助,但我会把它放在这里.在我的情况下 - 问题只出现在使用Android 7的Sumsung设备上,并且问题在于闪屏比例.将高度改为1024 px后 - 一切正常
小智 10
在将以下代码添加到android:行之间的Manifest文件的application标签后,我解决了问题。
android:hardwareAccelerated="false"
Run Code Online (Sandbox Code Playgroud)
将您在drawable中的图像移动到mipmap-xxhdpi.您的图像是位图格式,因此您应该将图像放在mipmap文件夹中,然后它将工作
在某些情况下,原始位图需要绘制到 ImageView、照片编辑应用程序等中......,
正如上面提到的海湾设置
android:hardwareAccelerated="false"
Run Code Online (Sandbox Code Playgroud)
会导致糟糕的 UI 体验,您可以设置 hardwareAccelerated 仅选择一个要绘制高分辨率图像的 Activity
<application android:hardwareAccelerated="true">
<activity ... />
<activity android:hardwareAccelerated="false" />
</application>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62641 次 |
| 最近记录: |