Android 中图片的存储位置

2023-12-06

我已将所有图像从 mipmap 文件夹移至可绘制文件夹,因为据说 mipmap 文件夹仅用于应用程序图标来启动应用程序Mipmap 与可绘制文件夹(这个答案得到了841个赞)。但是,当我现在想要启动我的应用程序时,我收到一条错误消息

 FATAL EXCEPTION: main
    Process: com.example.td.barapp, PID: 4331
    java.lang.RuntimeException: Canvas: trying to draw too large(188394348bytes) bitmap.
        at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:260)

在几个相关问题中,人们告诉我们将图片存储在不同的可绘制文件夹中(请参阅Android:了解可绘制文件夹)如drawable-xxhdpi 或drawable-xxxhdpi。

Update: I was told by someone in this post (who later deleted his answers) to store the image (which has a size of 1,7 MB) in the folder drawable-anydpi. I did as he said but the outcome on the Emulator looks quite bad for an imageview (see screenshot): Comparison of the emulator output of the same file Then I moved the same file back into the folder mipmap-xxxhdpi and now it looks good again. So my question now is, whether it is also okay to have the image in the mipmap-xxxhdpi folder instead of the drawable folder? I'd be happy for every advice because I am quite confused now.


java.lang.RuntimeException:Canvas:也尝试绘制 大(188394348字节)位图

这个异常主要是因为你试图显示一个大图像〜188MB,它将具有高分辨率,并且android对此进行了限制,这也报告here.

原因之一是为了节省设备资源;例如你可能会得到java.lang.OutOfMemory,因此系统从中节省设备内存。

1, 2, 3可能会彻底指导您。

通常,您可以在应用程序中使用几兆字节的图像~0-3MB。 第三方库如Glide & Picasso在 ImageView 上显示图像时提供磁盘、网络和内存管理技术。

您可以考虑的选项之一是在加载图像之前调整图像大小,因此可以查看this问题。

请记住,Android 对应用程序商店中的 apk 文件进行了限制,因此您需要因此最小化图像,或者从后端服务器加载它们。

正如您提到的,您只能将应用程序图标放在 res\mipmap 中。如果您决定将图像放在应用程序上,那么以不同的密度(hdpi、xhdpi、xxhdpi、xxxhdpi...)创建它们会很有效,因此它们可以匹配所有各种设备分辨率,并让您避免图像失真或由 Android 操作系统进行高处理,以便在显示图像之前将图像与设备分辨率相匹配。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中图片的存储位置 的相关文章

  • 如何将 Facebook LoginButton 集成到 PreferenceScreen 中

    我想让我的用户能够通过 设置 屏幕连接 断开与 Facebook 的连接 该屏幕使用简单的PreferenceScreen 如何将这个自定义 Button 类集成到PreferenceScreen https developers face
  • 谷歌地图不显示 Android

    我想在我的应用程序中实现谷歌地图 我添加了谷歌地图活动并创建了一个密钥 我没有更改其他地方的代码中的任何内容 我应该工作 但没有 地图活动 public class MapsActivity extends FragmentActivity
  • 进度条中形状的填充

    我正在使用 xml 文件来定义进度条 我在背景形状上定义了填充 但这个设置有时会正确显示 有时则不能 因此 如果我启动内部带有进度条的应用程序或活动 则会正确显示带有背景和 填充 进度的进度条 然后我关闭我的应用程序并再次启动它 并且 进度
  • 我想了解 NfcV ISO-15639 的操作

    我是 NFC 技术新手 我很难理解如何操作块 byte cmd new byte byte 0x20 FLAG byte 0x21 WRITE SINGLE BLOCK COMMAND byte 0x00 byte 0x00 byte 0x
  • 在 CustomAdapters 中使用条件 if(view==null)

    我正在为 ListView 编写一个自定义适配器 它扩展了 BaseAdapter 并在此方法中 Override public View getView int position View convertView ViewGroup pa
  • 华为移动服务的 Android 虚拟设备

    我想将HMS应用到我的应用程序中 然而 购买真正的华为手机并不在我的候选清单上 华为是否为此目的提供 Android 虚拟设备 如果没有 如何测试我的 HMS 实现是否真正有效 是的 华为确实提供了一个 Android 虚拟设备 名为App
  • 创建带有蒙版的 ImageView

    我关注了有关该主题的其他一些问题 以及 XferModes 上的 API 演示 并尝试创建一个根据 alpha 掩码屏蔽其内容的 ImageView Alpha 位图包含 0 alpha 表示要隐藏的区域 255 alpha 表示要显示的区
  • 呼叫转移

    我想将所有拨打我号码的呼叫转接至新的预定义号码 自动地 可以转接来电吗 也许至少对于 Froyo 来说是可能的 我找到了名为 Easy Call Forwarding 的应用程序 http www appstorehq com easyca
  • 反序列化时出现 Gson 异常(无参数构造函数不存在)

    我遇到了一个问题 该问题仅在 5000 台设备中的 10 台中出现 无法用我的模拟器和测试设备重现它 这似乎是一个非常具体的问题 仅涉及少数设备 我所拥有的只是堆栈跟踪和我的代码 因此 我正在针对黑洞进行开发 只有在 GooglePlay
  • android,如何重命名文件?

    在我的应用程序中 我需要录制视频 在开始录制之前 我为其指定名称和目录 录制完成后 用户可以重命名其文件 我写了以下代码 但似乎不起作用 当用户输入文件名并单击按钮时 我将执行以下操作 private void setFileName St
  • Android 上的 React Native:无法运行程序“node”:错误=2,没有这样的文件或目录

    编辑 我不确定我采取了哪些步骤来解决此问题 并且不再看到此错误消息 因此我无法测试下面的解决方案 请单独尝试 因为不同的答案似乎适用于不同的人 iOS 版本工作正常 但在我的 Mac 上运行 Android Studio 时出现以下 Gra
  • 在不同的活动上显示 OnItemClickListener 的结果

    我使用 OnItemClickListener 从列表视图中选择一个项目 如下所示 listView setTextFilterEnabled true final TextView disp TextView findViewById R
  • 如何将两个 APK 合并为一个,以便两个应用程序可以同时安装

    如何将 2 个 Android 应用程序合并到捆绑包中 以便在安装捆绑包时同时安装两个应用程序 我想将 2 个 APK 合并到一个捆绑包中 以便我可以将其上传到 Android Market 当有人将其安装到设备上时 这两个应用程序都应该安
  • 返回 RxJava 的 Completable 的方法的命名约定

    我有一个带有视图类的 Android 应用程序 Fragment Activity 观察其ViewModel The ViewModel公开方法 例如getUserName返回Observable
  • 无法在android中使用retrofit发出@Post请求

    我正在学习如何在 android 中使用改造 但是每当我尝试从互联网检索数据时 我的应用程序不会返回任何内容我的响应没有成功 我不知道如何修复当前我正在尝试发布的错误并使用此 URL 检索数据https jsonplaceholder ty
  • 调用 MediaScannerConnection.scanFile 后,MediaStore 内的 Android 缩略图不会刷新

    我正在尝试构建一个类似画廊的应用程序 它将在外部存储上执行以下功能 列出所有包含图像的文件夹 列出所有可供公众使用的图像 不会探测里面的文件Android data 到目前为止 我可以列出所有图像以及包含图像的文件夹 然而 我后来发现这些图
  • 启动 Activity 时自动弹出键盘

    我有一个相对简单的问题 我有一个包含很多 EditText 的活动 当我打开活动时 它会自动聚焦到第一个 EditText 并显示虚拟键盘 我怎样才能防止这种情况发生 在 XML 文件的布局标签中使用此属性 android focusabl
  • Android中计算两个时间之间的差异

    我有两个字符串变量 例如 StartTime 和 EndTime 我需要通过用 StartTime 减去 EndTime 来计算 TotalTime StartTime和EndTime的格式如下 StartTime 08 00 AM End
  • 在 Android 应用程序中启动应用程序时仅显示一次版本信息

    我想显示一个带有 确定 按钮的简单信息对话框 介绍此版本中的新增内容 但它应该仅在第一次启动时显示 实施这个的最好方法是什么 我会 并且已经 使用带有布尔值或 int 值的 SharedPreferences 只需检查最后一个版本是否比当前
  • 与桌面浏览器相比,移动浏览器有多强大? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 按值返回的右值引用参数是 xvalue 吗?

    我的理解是 在下面的函数中 表达式foo在声明中return foo 是一个 xvalue 因为它表示的对象即将过期 即使foo是前面语句中的左值 Foo bar Foo foo change foo return foo 此类到期值不属于
  • 跟进术语,寻找行动项目

    我想编写一个快速脚本来提醒自己将后续操作项目放在各种谷歌文档上 从谷歌驱动器中受益 以便从 API list 中受益 然而 似乎followup actionitems搜索查询不适用于 API 因为搜索词未知 它返回 400 错误 例如 这
  • 尝试 listview.getChildAt() 时出现 java.lang.NullPointerException

    ListView 具有正确的值 public class FragmentTab1 extends SherlockFragment ListView list LazyAdapter adapter Override public voi
  • 获取父 ID 的子页面并显示自定义图像字段以及 WordPress 中页面的链接

    我需要获取子页面列表 但我需要排除第一个子页面 我还需要显示一个名为 page icon 的自定义图像字段 其中包含每个图像的 url 和页面标题 这将充当子菜单 将显示在每个子页面上 每个菜单项都需要将当前类附加到 a 标签 我尝试了多种
  • Accumulo 支持聚合吗?

    我是 Accumulo 的新手 我知道我可以编写 Java 代码来使用 Hadoop 和 MapReduce 扫描 插入 更新和删除数据 我想知道的是 Accumulo 中是否可以进行聚合 我知道在MySql中我们可以使用groupby o
  • Windows 中用于生物识别身份验证的凭据提供程序

    我有一个定制的基于 USB 的指纹识别设备 如何将设备上的指纹与 Windows 计算机的用户关联起来 使用 CredentialProvider 首先 我希望在指纹扫描时自动登录 而不提示输入用户名 密码 我意识到应该有一些注册过程来将指
  • Chome 扩展:将 chrome.storage 数据从后台脚本发送到 popup/contentscript

    如标题中所述 我正在尝试编写一个后台脚本 该脚本将侦听来自 popup js 或 contentscript js 的加载请求 当它接收到负载时 它会获取 chrome storage local 的内容 执行一些数据处理 for 循环 并
  • 如何使用 Pharo 每 60 秒刷新一次会话并将其显示在成绩单上?

    a b a ZnClient new a get http cloud storage com login a formAt username put jom formAt password put mypass post get http
  • 自定义或可重复使用的 HTML 组件

    我们可以在 HTML 中创建自定义或可重用的组件吗 我的页面具有帐户搜索功能 该功能是使用 HTML JS jQuery 代码实现的 我的页面由不同地方的帐户搜索组成 功能同样困难 每次使用时 只有 div 的 ID 会发生变化 那么我们能
  • 控制中心中的“播放/暂停下一个/上一个”按钮显示为灰色

    在我的应用程序中 播放是从控制中心控制的 当在 AVPlayer 中进行播放时 此时播放控件在控制中心工作正常 我正在加载带有其他流 URL 的 Web 视图 一旦流再次完成 我就开始从 AVPlayer 播放 此后 控制中心的播放控件将显
  • javascript Thrift 客户端挂起

    我在 javascript 中有以下 Thrift 客户端代码
  • JAXB 解组 XML 字符串 - 循环遍历所有标签

    我是 Java 编程新手 正在解组以下 XML 字符串 我的任务是获取客户的姓名 这个字符串 我已经为一位客户做过 我需要获取所有客户姓名 我需要有关循环部分的帮助 这适用于一位客户 我的Java代码 XMLInputFactory xif
  • Sprite Kit - iOS 7.1 更新后由于缩放而导致对象碰撞

    没有问题 但在 iOS 7 1 更新后 物体碰撞 2pipes 的间隙 之前有人说过 这可能是因为 yScale 但我找不到解决方案 一些代码 Pipe pipe Pipe alloc initWithImageNamed pipeImag
  • @onclick="(() => SomeMethod(参数))"

    我正在研究 Blazor 偶然发现了这个表达式 onclick gt SomeMethod parameter 我无法在任何地方找到 谷歌这个 我猜 lambda 表达式实际上在做什么 谁能帮我解释一下这部分 gt 以及为什么使用它以及在哪
  • 如何使用 Webpack 2 获取数据属性内的图像?

    我在用 pug我的 HTML 和标准模板src我的图像上的属性如下所示 img src images image 当我跑步时webpack p 任何定义在src我的图像被 Webpack 找到并放入我的dist目录 这正是我所期望发生的事情
  • asp.net 树形视图复选框选择

    我有几个父节点 每个父节点都包含一个子节点列表 我的显示复选框设置为全部 我的问题 在客户端 当我检查父节点时 如何在不进行回发或使用 ajax 的情况下检查所有子节点 Regards tv Attributes Add onclick O
  • 如何在 CakePHP 中使用 TranslateBehavior?

    cakephp org 上没有文档 我无法在 google 上找到文档 请给我链接一些文档或提供一份 翻译行为是 CakePHP 的另一个非常有用但文档很少的功能 我已经在多语言网站上实施了几次 并取得了一定的成功 遵循以下原则 首先 翻译
  • 如何使用 powershell 中的 psexec 启用 winrm

    我编写了一个 powershell 脚本来远程执行一些操作系统验证 但是当远程服务器未使用 winrm 启用时 我收到以下消息 那么如何强制 winrm 使用 psexec 远程启用 Connecting to remote server
  • 当一切都正确加载和注释时,setText() 出现 NullPointer 异常

    我在尝试调用时收到以下异常setText 在我带注释的标签上 来自start 方法 我见过类似的问题 但它对那个人不起作用的原因是因为他的标签没有注释 而我的是 java lang NullPointerException at io gi
  • Android 中图片的存储位置

    我已将所有图像从 mipmap 文件夹移至可绘制文件夹 因为据说 mipmap 文件夹仅用于应用程序图标来启动应用程序Mipmap 与可绘制文件夹 这个答案得到了841个赞 但是 当我现在想要启动我的应用程序时 我收到一条错误消息 FATA