【发布时间】:2010-11-09 01:18:58
【问题描述】:
我正在开发一个适用于 Android 的应用程序,其中我需要一个需要以下内容的 UI:
至少重绘 10fps
屏幕上有按钮,但不是矩形
整个屏幕(或者至少是背景,如果它对系统来说太重的话)需要在渲染前进行一些“porter-duff”遮罩,即时进行
我目前想出了两条路,各有优缺点:
从框架中现有的 View - ViewGroup 开始。覆盖 onDraw 以向其添加遮罩。这更容易实现,但我不确定是否经常调用“无效”会造成任何麻烦?
构建替代视图 - ViewGroup 结构,并在 SurfaceView 中进行渲染。但后来我意识到我在框架中找到了一个看起来非常接近现有结构的结构,我觉得在框架上做的事情几乎相同。
有什么建议吗?
(ps.无论哪种方式,我都不确定如何捕捉按钮“点击”事件,它的形状不规则)
【问题讨论】:
-
为什么不用opengl?这些观点真的不是为了经常刷新
-
对于这样的 2D 场景,OpenGL 似乎有点矫枉过正,而且过于复杂。我实际上在 View 上测试了 onDraw -> invalidate,并且使用我的全屏 porter-duff 每帧大约 57 毫秒仍然可以。此外,SurfaceView 设计为刷新:developer.android.com/guide/topics/graphics/index.html
-
Falmarri,您认为 Android 中的动画是如何发生的?当然,它们是为了经常刷新。他们经常比这更频繁地刷新任务。
标签: android animation android-layout