gpt4 book ai didi

android - 位图太大,无法上传到纹理中

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:49:23 24 4
gpt4 key购买 nike

我在 drawable 目录中有一个大小为 960x1440 的图像文件。当应用程序启动时,图像不会作为背景加载,在我看到的 logcat 中:

位图太大,无法上传到纹理中(2880x4320,max=4096x4096)

为什么图片是 960x1440 却显示 2880x4320?

位图通过xml加载:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/launcher_bg"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">

最佳答案

/drawable/ 文件夹中没有任何指定的图像被认为是“默认”,即 1dp = 1px 即 mpdi,那么因为您实际运行的设备是 xxhdpi,图像会在运行时放大。

原始图像可能是 960x1440,但是从 mdpixxhdpi 的转换是尺寸的 3 倍,所以你的 960x1440 变成 (3*960)x(3* 1440) = 2880x4320,纹理太大而无法应用于硬件加速 View 。

所以要解决这个问题实际上非常简单,您有两个选择:

  1. 将您的图像移动到 /drawable-nodpi/ 这很简单,可以减小 .apk 的大小,但低端设备可能难以加载这么大的图像。
  2. 在所有密度 mdpihdpixhdpixxhdpi 上创建缩放图像以避免运行时过度缩放并在旧设备上显示较小的图像。

关于android - 位图太大,无法上传到纹理中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28346407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com