Mic*_* A. 10 graphics android 2d
我使用SurfaceView在Android应用程序中显示大图像(通常比屏幕大,但并不总是如此).这实际上是简单的图形,使用OnTouchListener或GestureDetector很容易实现滚动.图形在Render循环中运行,但是对于所有真实设备来说,性能似乎已经足够了(尽管仿真器可能有点痛苦).
我正在考虑在图像上实现Pinch和Zoom,但我更愿意避免使用OpenGL,因为我对OpenGL的经验很少,并且使用OpenGL对于这么简单的事情来说似乎太过分了.
似乎android.graphics.Camera类可能允许我实现我想要的缩放功能.
有没有人知道在基本的Android SurfaceView上实现类似缩放功能的任何好例子?
此外,如果你已经实现了这样的事情,任何关于性能的想法?OpenGL是否值得额外麻烦,因为这里需要的是如此简单?
这个问题不清楚,或者我在Android开发者网站上遗漏了一些我应该找到的令人眼花缭乱的明显文档/代码?
好吧——终于有时间真正工作和研究这个问题一段时间了,我实际上找到了一个解决我遇到的问题的解决方案。
该解决方案依赖于 BitmapRegionDecoder (API10+)。这样做的目的是允许应用程序加载位图的一部分,而不是尝试一次性加载整个位图。
解决方案的本质:
感谢 John Lombardo 首次实现了我所发现的想法。
我在https://github.com/micabyte/android_game上开源了我自己的实现以及一些其他实用程序类
这是一个相当新的实现,因此目前还没有受到真正用户的热烈欢迎。不过,我已经运行了显示 8000x4000 像素位图的测试,到目前为止没有出现任何问题。性能似乎足以满足我的需求。