【问题标题】:Advice on this UI implementation?关于这个 UI 实现的建议?
【发布时间】:2012-06-15 22:02:06
【问题描述】:

这是我想要的基本用户界面:

有一个中心圆:CENTER。随着视图的旋转,新的 circles:NAME 在圆周上生成。顶部的圆圈是一个新生成的圆圈,即如果一个已经生成的圆圈经过顶部,它会获取一个新名称。

我对 Android API 还不够了解,所以有人能指出我正确的方向吗?我应该看什么课?我怎样才能创建那种路径?我是以编程方式生成圆圈还是在 xml 布局中已有视图但不可见?

谢谢。

编辑:目前我正在处理每个圆圈的自定义视图。

【问题讨论】:

  • 您是否检查以确保 Apple 没有为该圆圈申请专利?
  • 不知道苹果这样做了。我认为这很常见。如果有链接?以及如何检查?
  • 对不起,如果我的苹果讨厌 Scarcasm 滴水评论让你感到困惑:)
  • 哦,这里是参考链接。 forbes.com/sites/timworstall/2012/04/01/…

标签: android xml layout user-interface


【解决方案1】:

我认为您可以通过扩展 AdapterView 来做到这一点。我将首先查看它的源代码和它的一些死者,看看他们是如何实现它们的。

我认为您所追求的功能与 ListView 或其他一些简单的 Adapter Ready View 小部件相去甚远。

主要区别在于你的 onDraw() 方法,你需要重写它来为你绘制圆圈。无论您是通过编程方式制作圆圈还是在 xml 中定义自己的视图,都将取决于您希望在视觉上如何显示。

我没有您所追求的旋转效果的任何示例代码,但肯定可以使用画布和一些几何图形来完成。

一旦您构建了 AdapterView,您可能还希望继承一个 Adapter 来保存您的姓名并覆盖其 getView() 方法以将名称填充到您的圈子中。

如果您从未实现过任何 ViewGroup 小部件,我建议您从探索其中的一些小部件开始。 ListView、GridView 等。了解如何将它与适配器和一些数据一起使用来创建动态布局。一旦你很好地理解了如何使用已经构建的那些,然后开始尝试处理你想要制作的。

【讨论】:

  • 我会说不要在 onDraw 中自己绘制圆圈。只需使用它来放置每个视图。允许您返回的视图(从您的 getView() 函数)是圆形的。这样你就有了一个更通用的 AdapterView ,它只是旋转视图。此外,中心视图不需要实际附加到适配器视图。在你的布局中将它作为一个单独的视图可能会更容易,并且在两者之间有挂钩......
  • 嗨,我打算让圆圈成为原子自定义视图对象。这有什么改变吗?
  • 不,仍然可以正常工作。 @SalilPandit 好点。我认为您仍然需要使用 onDraw() 来获得旋转效果。嗯,某种属性动画师和一些几何图形可能也可以为您提供您所追求的旋转效果。
  • 您可以使用动画,或者在 AdapterView 的 onDraw 中,您可以使用 canvas.rotate(); 函数,您可以通过 canvas.rotate(currentDegree,...); currentDegree+=ROTATE_SPEED; if(currentDegree >= 360) {currentDegree = 0;} invalidate(); 旋转画布 我认为应该创建一个无限旋转...然后您所要做的就是像往常一样将视图围绕它放置一个圆圈...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多