我正在考虑在图像上实现捏和缩放,但是我宁可避免不必去OpenGL,因为OpenGL几乎没有什么经验,并且使用OpenGL似乎对这个简单的东西来说太过分了.
看起来好像androID.graphics.Camera类可能允许我实现我想要的缩放功能.
有没有人知道在基本的AndroID SurfaceVIEw上显示实现缩放缩放功能的好例子?
另外如果你已经实现了这样的事情,对性能的任何想法? OpenGL是否值得额外的麻烦,因为这里需要的是如此简单?
这个问题不清楚,还是我在AndroID开发人员网站上遗漏了一些我应该找到的一些明显的文档/代码?
解决方法 好的 – 终于有时间在这个时间上真正工作和研究了一段时间,我实际上找到了一个解决问题的解决方案.该解决方案依赖于BitmapRegionDecoder(API10).这样做允许应用程序加载位图的一部分,而不是一次尝试加载整个位图.
解决方案的本质:
>整个位图的下采样版本保存在内存中.因为这个版本被抽样了,它可以永久保存在这里.
一个线程将位图的当前视口(或多一点)连续地加载到内存中(使用BitmapRegionDecoder).由于这是最大程度上比屏幕大,这也应该舒适地记忆.
>渲染线程将适当的版本绘制到画布;即,如果您缩小或位图不可用(例如,因为它在后台加载),则使用下采样版本.
> Pan,Fling和Zoom用GestureListeners处理.
对于John Lombardo的信用,我首先实现了我发现的想法.
我在https://github.com/micabyte/android_game开源自己的实现与我的一些其他实用程序类
这是一个最近的实施,所以在这个时候它没有真正的用户的洗礼.但是,我已经运行测试,显示8000×4000像素位图,迄今没有问题.表现肯定似乎足以满足我的需要.
总结以上是内存溢出为你收集整理的在Android SurfaceView上实现捏和缩放全部内容,希望文章能够帮你解决在Android SurfaceView上实现捏和缩放所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)