重用 Android 位图来加载许多图像
我的应用程序需要显示长动画,每帧都有单独的全屏尺寸图像。 AnimationDrawable 无法使用,因为我无法加载内存中的所有图像(大约 300 个图像将大约 100 Mb)。
所以我想做的是每帧加载图像而不将其保留在内存中。 但为了保持较低的内存使用量,我试图避免线程循环中的任何分配。
我发现 Android SDK v3 在 BitmapFactory.Options.inBitmap 中有一个有趣的功能,它尝试将流解码为指定的位图(如果可以的话)。
我的问题是:是否可以为 SDK v2 重现相同的功能 (BitmapFactory.Options.inBitmap)?
My app needs to display long animation with separate full-screen size images per frame.
AnimationDrawable can not be used, as I can not load all images in memory (about 300 images will be around 100 Mb).
So what I'm trying to do is to load image every frame without keeping it in memory.
But in order to keep memory usage low, I'm trying to avoid any allocations in my thread loop.
I found that Android SDK v3 has interesting feature in BitmapFactory.Options.inBitmap which tries to decode stream into specified bitmap (if it can).
My question is: Is it possible to reproduce the same feature (BitmapFactory.Options.inBitmap) for SDK v2?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的问题有点误导。 SDK 级别 2 对应于 Android 1.1,我相信您想要为 Android 2.0 及更高版本(即 SDK 级别 5)进行开发。使用来自 SDK 级别 3 的该功能应该没有问题。
一般来说,“框架的更新” API 的设计使新 API 与早期版本的 API 保持兼容。”
http://developer.android.com/guide/appendix/api-levels.html
编辑:SDK 级别 11 (Android 3.0) 引入的功能不适用于 3.0 以下的手机。
Your question is a little misinformed. SDK level 2 corresponds to Android 1.1, and I believe you want to develop for Android 2.0 and above, which is SDK level 5. You should have no problems using that feature which came from SDK level 3.
In general, "Updates to the framework API are designed so that the new API remains compatible with earlier versions of the API."
http://developer.android.com/guide/appendix/api-levels.html
Edit: A feature that was introduced at SDK level 11 (Android 3.0) is not available for phones below 3.0.
首先,您不是在谈论 SDK,而是在谈论向最终用户显示的 android 版本(honeycomb,它是 3.x 与姜饼,低于它是 2.x)。
真正需要关注的是 API 编号。您正在谈论的功能是从 API11 (honeycomb) 开始的,因此您无法在较旧的设备上使用它,除非您获取 android 的代码并对您的应用程序执行相同的操作。
这是如何使用这个很酷的功能的教程:
http://www.youtube.com/watch?v=rsQet4nBVi8
first, you are not talking about the SDK, but about the android version as it is shown to end users (honeycomb ,which is 3.x vs gingerbread and below which is 2.x ).
the real thing to look at is the API number . the feature you are talking about has started from API11 (honeycomb) , so you can't use it on older devices, unless you get android's code and do the same for your app.
here's a tutorial of how to use this cool feature:
http://www.youtube.com/watch?v=rsQet4nBVi8