2012-04-14 78 views
-1

我不确定问这个问题的最佳方式。 我是新开发的Android开发人员,想知道什么是实现我需要的最佳方式,例如SurfaceViews的组合,或者只是查看哪些容器应该是...的孩子......类似的东西。我正在XOOM平板电脑上开发这个功能......但它需要适用于所有Honeycomb Android平板电脑。布局设计思路

[我有一个样本画面的原型,但我没有足够高的声誉,它张贴]

这是我所期待的。这个应用程序将要展示的主要活动需要在4x4网格中显示16位图像。这个网格需要占用屏幕左侧的一半或更多。屏幕的其余部分将只有TextViews,按钮和其他典型控件。

捕捉是我希望能够双击这16个图像中的一个,并使它具有动画效果,以占据16个整个空间...有效地隐藏它后面的其余部分,因为它涉及到前景。然后,用户可以再次双击它,以回到其在网格中的位置。

另外我会通过wifi连接从服务器接收数据,可能会告诉我需要在位图上绘制一些东西。例如,我的位图是足球比赛的图片,我可能需要在比赛之上画出新的比分或图标或其他东西。所以我想我可以使用16个SurfaceViews,每个游戏都有一个,但是我尝试了ScaleAnimation,虽然SurfaceView的尺寸调整了,但是它上面绘制的位图没有,如果我问它它的尺寸是多少,或ScaleX是在ScaleAnimation之后完成它告诉我原始大小,而不是缩放大小。所以这不适合我。

我很乐意知道如何解决这个问题,以及什么样的组合,或任何能够帮助我得到这个东西的工作。

感谢您的帮助。

回答

0

由于您的目标是蜂窝或更高版本,因此您可以采用使用标准视图的最简单路线。只要确保在清单中激活硬件加速。 正如你已经发现SurfaceViews不容易使用标准的android动画框架进行动画。

因此,对于屏幕的左侧部分,使用GridView /嵌套的LinearViews或自定义布局来获取您的4x4矩阵。然后,每个ChildView都可以由一个FrameLayout组成,该FrameLayout包含imageview和imageView顶部的多个textview。这将保证您充分利用该框架为您减少开发时间和最大化灵活性。 请务必阅读this,特别是关于图层的部分来加速动画。另外请确保使用酷新animation framework

+0

谢谢,我会试试这个。 – 2012-04-14 17:11:16

+0

我最终使用了GridView,它包含16个FrameLayouts,每个FrameLayouts都有一个CustomImageView(它扩展了ImageView)和一个TextView。我现在唯一无法工作的就是动画。我尝试了DoubleTap,但我不知道哪个GridView单元格被挖掘,所以我最终使用OnItemClickListener和onItemLongClick。现在我知道用户选择的网格中的哪个项目。唯一的问题是,当我动画它占用整个4x4网格它动画,但我不知道如何得到它的顶部。它似乎落后于电网的所有其他单元。 – 2012-04-18 19:25:59

+0

嗨,GridView有一个你可以使用的setOnItemClickListener。至于隐藏的View beeing,我的建议是将GridView和Framelayouts的一个实例放入viewFlipper。当网格发生点击时,您将填充隐藏的framelayouts的内容并在ViewFlipper上调用setDisplayedChild。动画部分可以通过在Viewflipper上设置inAnimation和outAnimation来完成。 – Renard 2012-04-18 20:25:58