我可以在 Android 中捕获用于解码图片文件的位图分配中的内存不足异常吗?

2024-01-25

我尝试对图片文件解码进行捕获,但它无法捕获内存不足异常,并且应用程序崩溃了。

我知道解码图片文件的一些技巧,例如子采样。 但我需要放大图片才能看到细节,所以我不能对其进行过多的二次采样。 对于一些较新的设备,可以成功分配更大的内存以避免内存不足异常。

对于某些较旧的设备,它不能。

如果我可以为不同的设备定制我的应用程序,那就太好了。

所以我想要: (1)我希望我能够捕获内存不足异常,这样万一捕获它,我可以减小图像大小。 (2) 或者,我希望能够获取可供分配的可用内存的大小。

我在网上搜索,未能找到答案。


首先,您可以在堆栈跟踪中看到抛出 OutOfMemoryError 的位置。如果您没有捕获它,则可能是因为 a) 您捕获的是 Exception 而不是 Throwable,或者 b) 错误被抛出到 catch 语句之外的其他位置。对于 OutOfMemoryError,您无法保证它将被抛出到哪里。通常它是您处理位图的地方,但也可能是另一个恰好同时分配内存的线程。

获取设备上的可用内存很简单:http://developer.android.com/reference/android/app/ActivityManager.html#getMemoryClass() http://developer.android.com/reference/android/app/ActivityManager.html#getMemoryClass()

如果您还没有看过,Android 团队有一组关于位图和内存的精彩文章:http://developer.android.com/training/displaying-bitmaps/index.html http://developer.android.com/training/displaying-bitmaps/index.html

祝你好运!

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

我可以在 Android 中捕获用于解码图片文件的位图分配中的内存不足异常吗? 的相关文章

  • 检查片段是否存在并重用它

    每次用户单击列表视图中的项目时 我都会使用以下代码创建一个片段 但通过这种方式 片段是在每次用户点击时创建的 我想要的是重用旧片段 如果存在 并仅重新加载其内容 不创建新片段 MagazineViewFragment fragment ne
  • 使用 Firebase 数据填充 Android spinner

    我在填充时遇到一些问题propertyAddress从我的properties桌子到我的旋转器MaintenanceActivity 问题本身不在于代码 而在于可以使用 Firebase 控制台修改的数据库规则 目前 我的规则是这样的 ru
  • 无法调用类的无参数构造函数。向 Gson 注册此类型的 InstanceCreator 可能会解决此问题

    java lang RuntimeException Unable to invoke no args constructor for class com arch example network models NetworkPagingL
  • MissingDimensionStrategy 无处不在 - 有没有更好的方法?

    我有一个图书馆项目 让我们称之为lib1有定制的flavorDimensions指定的 更准确地说有buld尺寸与实际口味full and production 该库被另一个库项目使用 lib2 没有自定义flavorDimensions指
  • 如何让TalkBack自动读取TextView错误信息?

    我目前正在使我的应用程序可访问 但我的 EditTexts 遇到问题 在每个 EditText 中 用户的输入都会在某个时刻 例如按下按钮后 进行验证 如果输入无效 我会使用以下命令显示错误editText setError message
  • 将 MapView 限制为屏幕的一半

    我试图让地图仅填充屏幕的上半部分 并在下半部分填充一些其他布局 现在我知道使用权重与表格布局相结合应该可以实现这一点 但是同一段 XML 代码可以完美地与 say 按钮配合使用 但不能与地图配合使用 截图在这里 https i stack
  • NanoHTTPD 如何将上传的文件保存到SD卡文件夹

    如何将上传的文件保存到SD卡文件夹 目前它存储到 data data cache文件夹 文件名如 NanoHTTPD 一些随机数 我无法将其复制到 SD 卡中的任何文件夹位置 我想将文件保存到 SD 卡中前面提到的文件夹位置 其名称与从我的
  • 如果使用键盘,如何捕获 TimePicker 中的时间变化?

    我有一个小部件 它是一个 TimePicker 用于检索数据库字段中保存的时间 问题是 当用户更改小部件中的时间值时 这不会保存在数据库中 所以我遇到了setOnTimeChangedListener如果您只在小部件中使用加号和减号 那么该
  • 如何在 Android 中签署 AAR Artifacts?

    我目前正在开发一个 AAR android 库 我想用我自己的密钥对已发布的工件进行签名 以便我可以确定我是否发布了具有相同名称和功能的假 aar 注意事项1 我希望能够以编程方式检查我的库的真实性 即使是一个伪造的库 只是伪造了我的 aa
  • GoogleMap 本质上是可打包的吗?

    我对java和android很陌生 我遇到了一个基本问题 在这个给定的fragment 我可以添加GoogleMap对象为parcelable没有任何额外的pracelable类为 public class SecondFragment e
  • 如何使用Gson将JSONArray转换为List?

    在我的 Android 项目中 我试图将收到的 JSONArray 转换为列表 在 的帮助下这个答案 https stackoverflow com questions 8371274 how to parse json array in
  • 使用协程对任务进行排队

    我最近开始阅读有关协程的内容 我想询问某个场景 考虑一个带有一个按钮的简单屏幕 单击后 它会执行一堆打印语句和一些延迟 其间 到目前为止 我正在使用协程来实现这一目标 现在 我的问题是 如果用户反复向该按钮发送垃圾邮件 是否有一种方法可以将
  • Firebase 邀请发送电子邮件,但不发送短信。返回结果代码 0

    我正在尝试使用 Firebase 在我的 Android 应用程序中实现应用程序邀请系统 该代码与他们中给出的完全相同guide https firebase google com docs invites android private
  • 在 Cordova / PhoneGap 中生成 iOS 和 Android 图标

    我有一个新创建的 Cordova 项目 其中包含以下内容config xml设置 使用来自http docs phonegap com en edge config ref images md html http docs phonegap
  • 如何更改Android软键盘中任意键的按键背景

    我想让键盘上的一些键与其他键不同 例如下图中的shift 删除 空格键 根据google的参考文档 我们可以通过使用 来改变按键的背景android keybackground drawable xxx in input xml 但它改变了
  • Android 上的 Facebook 社交插件

    我想集成 Facebook 的评论社交插件 https developers facebook com docs reference plugins comments https developers facebook com docs r
  • 在Android项目中引用(纯java)项目(找不到类)

    我试图在我的 Android 项目中引用一个纯 java 项目 gt Java 项目有一大堆我需要使用的类 哦 正如第一个回复所指出的 我正在使用 eclipse 是的 唯一的问题是 我总是找不到类 XXX 从方法 com example
  • Android Google 地图:在 2 个位置设置边界并以其中一个位置为中心

    我知道如何在两个位置设置边界 以便两个位置都以最大缩放显示 使用LatLngBounds 我知道如何以某个位置为中心 请问我该如何同时做这两件事 在 2 个位置设置边界AND将地图置于 2 个位置之一的中心 googleMap setCen
  • getApplicationDocumentsDirectory 在 flutter 桌面(Windows)上不起作用

    如何在 Windows 上的 flutter 桌面上保存和打开文件 getApplicationDocumentsDirectory 不适用于 Windows 应用程序的 flutter 桌面 Future
  • 更改 ActionMode 溢出图标

    有没有办法更改 ActionMode Overflow 图标而不更改 正常 ActionBar 的图标 我仍然需要弄清楚如何仅更改 ActionMode Actionbar 内部的溢出图标 因为我更改了默认操作栏中的溢出图标 该图标在 Ac

随机推荐

  • AI 赋能绿色制冷,香港岭南大学开发 DEMMFL 模型进行建筑冷负荷预测

    近年来 城市化进程加速所带来的碳排放量骤增 已经严重威胁到了全球环境 多个国家均已给出了 碳达峰 碳中和 的明确时间点 一场覆盖全球 全行业的 绿色革命 已经拉开序幕 在一众行业中 建筑是当之无愧的能耗大户 其中又以暖通空调 Heating
  • Python 使用 NoSQL 数据库的优选方案

    NoSQL 数据库因其高性能 可扩展性和灵活性而风靡一时 然而 对于 Python 程序员而言 选择合适的 NoSQL 数据库可能会令人困惑 因为有多种选择可供选择 那么 哪种 NoSQL 数据库最适合 Python 呢 2 解决方案 根据
  • 网工内推 | 上市公司同程、科达,五险一金,年终奖,最高12k*15薪

    01 同程旅行 招聘岗位 网络工程师 职责描述 1 负责职场 门店网络规划 建设 维护 2 负责网络安全及访问控制 上网行为管理和VPN设备的日常运维 3 负责内部相关网络自动化和系统化建设 4 优化与提升网络运行质量 制定应急预案 人员培
  • 如何在 Python 脚本中使用 Google OAuth2

    在使用 Python 脚本将视频上传到 YouTube 频道时 若希望将视频上传到第二个频道 需要解决 OAuth2 授权的问题 解决方案 创建新的 Google Cloud 项目 from google oauth2 import ser
  • 题解 | #判断两个IP是否属于同一子网#

    求求大家投下腾讯吧 一直在捞人 求求大家投下腾讯吧 一直在捞人 垂直领域大模型 文档图像大模型的思考与探索 分享一个大模型3D可视化的项目 释放一个比亚迪hc 这样改简历 春招通过能提升50 吗 OPPO校招笔试原题 记录一波秋招结果 伯恩
  • 【安全-SSH】SSH安全设置

    今天发现自己的公有云服务器被攻击了 在这里插入图片描述 https img blog csdnimg cn direct cafdca04646f4b8b838400ec79ac282f png 然后查看了登录日志 如上图 ls sh va
  • RabbitMQ环境配置

    文章目录 安装Erlang 安装RabbitMQ 安装Erlang 下载地址 http erlang org download otp win64 25 3 2 7 exe 安装RabbitMQ 下载地址 https www rabbitm
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全
  • 如何在 Python 脚本中使用 Google OAuth2

    在使用 Python 脚本将视频上传到 YouTube 频道时 若希望将视频上传到第二个频道 需要解决 OAuth2 授权的问题 解决方案 创建新的 Google Cloud 项目 from google oauth2 import ser
  • 记录xxl-job重复执行引发业务问题

    业务问题描述 1 创建运单 发现重复 同一个车架号两条记录 2 通知重复反馈 A系统读取中间表状态为未处理数据 推送到B系统 原因分析 1 以上两个问题都是xxljob定时执行的 2 通过日志分析 读取中间表数据 同一条数据被多次处理 针对
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学
  • 【加解密篇】电子数据取证分析之特殊的自加密BitLocker解密

    加解密篇 电子数据取证分析之特殊的自加密BitLocker解密 数据加解密通常是个耗时费力的事情 蘇小沐 1 实验环境 Windows 11 专业版 23H2 22631 3007 一 自动开启BitLocker之天坑 1 经验之谈 在20
  • 【前端】canvas图片加文字

    注释标记了操作步骤 import React Component createRef from react class CertifyImgRender extends Component bgRef createRef
  • 使用 Caffe 没有提高 RMSprop、Adam、AdaDelta 测试精度

    I am finetuning using Caffe在图像数据集上Tesla K40 用一个batch size 47 solver type SGD base lr 0 001 lr policy step momentum 0 9 g
  • 获取 Flutter ListView 中当前可见的 widget

    我在用ListView builder 当我们向上向下滚动时 如何获取当前可见的小部件viewport 类似安卓的东西recyclerview findFirstCompletelyVisibleItemPosition 谷歌给出了解决方案
  • MySQL TRIM 函数不修剪换行符或回车符吗?

    从我的实验来看 似乎并非如此 如果确实如此 那么删除换行符的最佳方法是什么 我目前正在试验 TRIM 接受的要删除的字符的参数 从修剪开始 n and r 我的换行符位于字符串的中间 并且我无法控制源数据 以下 mysql 命令对我有用 R
  • 如何激活 Anaconda 环境

    我使用的是 Windows 8 使用 Anaconda 1 7 5 64 位 我创建了一个新的 Anaconda 环境 conda create p test python 2 7 pip from C Pr TEMP venv 这很有效
  • 垂直复制电子表格中的所有列

    set ws1 As SheetA set ws2 As Target With ws1 LastCol Cells 1 Columns Count End xlToLeft Column End With Lastrow ws1 Rang
  • 有没有办法以编程方式检查用户是否在 Facebook 上共享了链接?

    我目前正在使用 jQuery 记录我网站上 Facebook 共享链接的每次点击 但我正在寻找更准确的解决方案 我不想记录点击 而是记录实际的 分享 用户共享链接后 是否有办法从 Facebook 获取响应消息 我今天遇到了这个 http
  • 我可以在 Android 中捕获用于解码图片文件的位图分配中的内存不足异常吗?

    我尝试对图片文件解码进行捕获 但它无法捕获内存不足异常 并且应用程序崩溃了 我知道解码图片文件的一些技巧 例如子采样 但我需要放大图片才能看到细节 所以我不能对其进行过多的二次采样 对于一些较新的设备 可以成功分配更大的内存以避免内存不足异