gpt4 book ai didi

android - 拖动 Action 时有效的图像切换

转载 作者:行者123 更新时间:2023-11-29 02:14:59 24 4
gpt4 key购买 nike

我的 SD 卡上有 200 张图像,它们逐帧代表一个对象的360 度 View
我想让用户通过在图像上拖动手指来“旋转”对象。

我在实现拖动事件方面没有问题,问题在于加载和切换图像。由于 VM 内存有限(图像很大,分辨率超过 SVGA),在显示 Activity 之前缓存所有图像是不可能的。在拖动事件中加载图像无效 - 远非可接受。

有人遇到过这样或类似的问题吗?
任何帮助将不胜感激。

最佳答案

您提到的有限 VM 内存,也称为 VM 堆大小,大约 16Mb,仅影响在 Java 中分配的内存。您可以在 native 代码中分配更多内存。在真实设备上,通常有数百兆字节的 RAM。

但是,如果您的应用程序使用过多内存,它仍可能会被系统杀死。因此,当您需要处理大内存时,最好的解决方案是使用内存文件映射,使用 Linux mmap() 工具。这是相当聪明的,可以作为交换。使用 mmap(),您甚至可以映射比实际物理 RAM 大小更多的内存,并且内核将根据需要从底层文件加载/卸载内存页面。

但是,我认为您不能将映射内存与标准小部件(例如 ImageView)一起使用。另外,为了在您解释的内容中获得流畅的图像切换和滚动,我相信 OpenGL 是必需的。

所以我建议将图像加载和解码到映射内存区域,以便将它们有效地用作 OpenGL 纹理(有一个 android-ndk thread 详细说明了这一点,请参阅 this post 和后面的)。

关于android - 拖动 Action 时有效的图像切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4780909/

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