【问题标题】:Developing alternative UI for Android. Which way I should go?为 Android 开发替代 UI。我应该走哪条路?
【发布时间】:2010-11-09 01:18:58
【问题描述】:

我正在开发一个适用于 Android 的应用程序,其中我需要一个需要以下内容的 UI:

  1. 至少重绘 10fps

  2. 屏幕上有按钮,但不是矩形

  3. 整个屏幕(或者至少是背景,如果它对系统来说太重的话)需要在渲染前进行一些“porter-duff”遮罩,即时进行

我目前想出了两条路,各有优缺点:

  1. 从框架中现有的 View - ViewGroup 开始。覆盖 onDraw 以向其添加遮罩。这更容易实现,但我不确定是否经常调用“无效”会造成任何麻烦?

  2. 构建替代视图 - 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


【解决方案1】:

按钮很简单。只需在您的布局中添加一个 Button 视图并使用 XML 来定义您自己的自定义图像。

android:background="@drawable/my_button_background"

边界被自动定义为drawable的边界。简单易行。

【讨论】:

  • 我之前做过一个测试。是的,外观可能不规则。但是,命中区域仍然是矩形边界。例如,如果您制作了一个六边形按钮,一旦单击它可能无法按预期工作。
猜你喜欢
  • 1970-01-01
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2018-02-06
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多