哪个Android布局和视图用于简单的基于图像的游戏?

时间:2012-11-15 14:27:59

标签: android android-layout android-image

我想制作一个简单的Android游戏,其中显示大型背景图像,其他一些图像显示在其上的特定位置,其他图像可以点击。

以下是我所说的快速示例图片: enter image description here

用户应该可以点击足球运动员或驼鹿(啊,经典的“足球运动员驼鹿问题”!)

我该如何渲染这个屏幕(哪些布局和视图?),以便用户可以与它进行交互,并且它可以在不同的设备上正确扩展?

5 个答案:

答案 0 :(得分:2)

可点击元素的ImageView对我来说似乎是一个不错的选择。对于背景,我只想将您的图像设置为父布局的背景,即RelativeLayout

答案 1 :(得分:2)

我会使用RelativeLayout。

您可以将背景图像设置为布局(fill_parent的高度和宽度)。

然后,您可以将包含驼鹿和足球运动员的ImageView放在相对于场景顶部或两侧的布局上,或相对于彼此(确保为所有内容指定“dp”单位)。将ImageViews的背景设置为透明,并且不存在边界框问题(和/或您还可以将ImageViews对齐设置为彼此相对,确保它们不重叠)。

我认为这是最简单的方法 - 然后将onClickListener附加到Activity中的ImageViews非常容易,而且你已经完成了。

此类布局在所有设备和屏幕尺寸上的工作方式相同。

在RelativeLayouts中有一些小问题,但是一旦进入它们就很简单,并提供快速渲染(因为视图层次结构通常很浅)。祝你好运。

答案 2 :(得分:0)

SurfaceView 用于整个事物(以您的字段为背景)和常规* ImageView * s用于添加元素。您可以轻松地从SurfaceView恢复点击坐标,从而知道触摸了哪个元素。

无论如何,SurfaceView可能会为您提供额外的可能性。

答案 3 :(得分:0)

对于大多数图像,我会为每个图像使用ImageView,就像FoamyGuy说的那样。

如果它们足够接近重叠边界框是一个问题,您仍然可以为每个边界框使用ImageView,但变体为this answer,为范围内的每个ImageView测试alpha。

答案 4 :(得分:0)

我同意FoamyGuy和Booger的观点,如果你的唯一目标是将静态图像放在屏幕上,当你点击它们时会做一些事情,一直是RelativeLayout和ImageViews。

但是... 如果您希望在屏幕上随机生成多个图像,并让它们四处移动以便玩家进行交互,同时爆炸正在关闭并且少女被绑架,您应该查看SurfaceView,Canvas,Drawable,TouchEvents和FrameBuffers