Lee*_*Lee 13 android scroll surfaceview
我正在编写一个Android应用程序来构建一个(例如)640*480像素的屏幕外位图,并在SurfaceView中显示它.请注意,图像的大小比手机上的实际显示大.
应用程序的工作方式是它最初显示图像的左上角(0,0),然后我希望能够滚动图像.
我的Surfaceview类实现onMeasure回调并返回1024*768的大小,该大小显示与电话屏幕对应的图像区域.我想实现对滚动的支持,由于文档非常有限(只有一堆类和没有一致性的调用),我发现这几乎是不可能的.我试过只调用scrollBy,但这不起作用.
如果有人有任何关于如何进行的指示,将非常感激.
一旦开始使用SurfaceView,您就会进入一个空白区域的世界,您可以自己绘制它们的方式.你自己做所有事情 - 这意味着你也需要自己实现滚动.这样做并不简单,但也不是太难.
一种方法是: - 扩展SurfaceView并实现SurfaceHolder.Callback - 使用getHolder().addCallback(this)来获取回调 - 使用OnTouch事件来实现滚动行为(即,在响应时,选择x ,y来自MotionEvent的位置并适当地设置偏移量).
实现一个线程来处理图像的更新.网上有这样的例子(对不起 - 现在没有任何手).
或者,使用屏幕外位图并通过普通的ImageView绘制(将ImageView的大小调整为位图的大小并将其放置在滚动视图中).
编辑:
看到这仍然是观点,可能值得指出,从那时起,我已经实现并发布了一个小型库,实现了上述功能的框架(受到SO上的许多评论的启发,其他).它可以在Github上找到:https://github.com/micabyte/android_game