Android UI问题。实现指南

9

我正在实现一个Android应用程序的用户界面,想问一下是否有原生小部件已经可以完成我要做的大部分工作。

我正在处理的应用程序有15个不同的任务,可以分为3组(每组5个任务)。我有18个图标图片(3个组和15个个体任务),我想像这样排列这些图标(从组开始):

enter image description here

我希望下一个图标在上方和下方可见(如果比第一个图标更低)并且可以滑动到下一个图标

enter image description here

一旦单击图标,面板侧滑,暴露出下一层(所选组的5个特定任务),而所选组仍然在侧边栏中可见:

enter image description here

从那里,用户可以一眼看出自己在哪个组中,当前、下一个和上一个可选择任务是什么,通过向右滑动,他们可以回到组选择。

为了实现这样的功能,我需要查看哪些小部件?是否已经有预制列表可以执行这些活动?

感谢您的指导!


6
酷炫的界面想法!只是说说而已… - 2bard
1
谢谢!这是一个学校研究项目。我们正在尝试构建一个只有图片而没有文字的界面,并且完全直观。那个设计让我昨天整天都在思考...现在是实施的时间了! - joe_coolish
这让我想起了最近 PlayStation 游戏机所使用的仪表盘。 - walkingTarget
4个回答

6
您可以通过使用一组 ImageView 小部件和一个 ScrollView(垂直)或 HorizontalScrollView 来接近实现。但是,它不会给您所需的“居中图像与前/后图像的片段”效果 - 它将出现在用户定位的位置。
您可以通过使用 Gallery 接近实现。但是,它不会给您垂直方向,而且总是在两侧给您一个固定的完整选项集,而不是您寻求的部分图像。
如果必须按照您描述的方式,请自己编写。手势和动画应该给您所需的效果。

1
我很担心这个问题... 如果我将ScrollView设置为填充90%的宽度,然后有一个ImageView或其他占据其余10%的元素怎么办?我在考虑尝试使用ScrollView中的监听器,如果有一些在鼠标抬起时触发的事件,那么我可以编写一个“ScrollTo(int)”方法,它将根据视图上次定位的位置滚动用户到定义的间隔位置。您认为呢? - joe_coolish
2
@joe_coolish:“我可以做一个像“ScrollTo(int)”这样的方法,它将根据上次OnMouseUp发生时视图的位置定义间隔,始终将用户滚动到指定的位置。”-- 嗯嗯...那可能行得通。由于您可能会有多个大小的图像,因此在所有屏幕尺寸/密度上使其正常工作可能有些棘手。 - CommonsWare
1
我想我会把所有的图标都设置成相同的大小。我认为这是这个用户界面的最佳选择。至于屏幕尺寸/密度,使用dp单位不就可以解决这个问题吗?我打算试一试,看看结果如何。 - joe_coolish

0

对于前三个顶级项目,我会使用ListActivity。这不会给你自动居中的效果,但你应该能够查看Gallery源代码(可以在这里找到),并对ListActivity进行一些修改,使其自动居中。

对于下一个项目,我会添加一个onClick和GestureListener,以便您可以导航到另一个带有另一个列表视图的活动。由于您知道自己来自哪里(向Intent添加一些数据),因此您可以设置左侧的颜色矩形,以便它看起来像您刚刚将整个视图向左滑动。

如果需要自定义动画,可以调用此函数:

overridePendingTransition(R.anim.slide_left_entry, R.anim.slide_left_exit);

为了让黄色图标在向左动画时看起来更好,我会更改列表边界(在第一个活动中)以没有边距,并将黄色图标更改为具有方形右边缘-这将使下一个活动中的小黄色矩形看起来是第一个活动的一部分。

相对而言,模拟这个过程应该很容易,以便查看它是否能正常工作。

祝你好运!

编辑:好的,所以我制作了一个基本项目,可以完成你想要的大部分功能。这里是Eclipse项目文件的链接。我本来想把源代码放在这里,但是太多了,无法显示。

你还需要做的:

  • 微调动画
  • 配置层列表以显示正确的颜色
  • 添加信息到顶级意图,以便子活动能够自行配置。
  • 还有很多其他小事情。

我想我已经完成了主要的工作。我还添加了手势监听器,尽管重新阅读您的问题,您实际上并没有要求它。既然很酷,我就留下来了。

再次祝你好运!


哦嗯...我在Android和UI方面还是很新的。你能详细说明一下你的建议吗?最好附上一些链接或代码。 - joe_coolish
如果你增加悬赏金额,我会做的…;)。这是一点工作。 - Caspar Harmer
这对你有用吗?按照你的意愿进行定制应该不会太难... - Caspar Harmer
我实际上在 UI 上被否决了,所以我从来没有尝试过你的想法 :( 我可能会在另一个我正在考虑开发的应用程序上尝试它,所以我会再跟你联系的。 - joe_coolish
哦,好吧。这是一个不错的用户界面想法,希望它能在你的其他用户界面设计中有用。 - Caspar Harmer

0

我已经看过ViewFlipper了,但我真的无法弄清楚如何让它做我想要的事情。有什么建议吗? - joe_coolish
这是一个很好的Viewflipper示例:http://android-journey.blogspot.com/2009/12/android-viewflipper-and-slidingdrawer.html - JPM

-1

你有没有考虑过使用不同视图配置启动活动?你可以通过手势从一个活动切换到另一个活动,并且可以对视图进行动画处理。在我看来,你的用户界面就像是一堆屏幕,其中包含了显示其他屏幕的工具。因此,每个屏幕可能都需要一个活动,并且这些活动可能具有不同的配置或类似的设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接