2012-11-15 48 views
1

我想製作一個簡單的Android遊戲,其中顯示一個大的背景圖像,其他圖像顯示在其上的特定位置,其他圖像可能是可點擊的。哪個Android佈局和視圖用於簡單的基於圖像的遊戲?

這裏有一個快速的樣本圖像什麼我談論:(!啊,經典的「足球運動員駝鹿問題」) enter image description here

用戶應該能夠挖掘足球運動員或駝鹿

我應該如何呈現此屏幕(哪些佈局和視圖?),以便用戶可以與其交互,並且可以在不同設備上正確縮放?

回答

2

我會使用RelativeLayout。

您可以將背景圖像設置爲佈局(fill_parent的高度和寬度)。

然後,您可以將包含駝鹿和足球運動員的ImageView放在相對於場景頂部或側面的佈局上,或相對於彼此放置(確保爲所有內容指定「dp」單位)。將ImageViews的背景設置爲透明,並且不會出現邊界框問題(並且/或者您也可以將ImageViews對齊設置爲相對於彼此,以確保它們不重疊)。

我認爲這是最簡單的方法 - 將onClickListener附加到您的Activity中的ImageView上,這樣做非常容易,而且完成了。

這種類型的佈局在所有設備和屏幕尺寸上都是一樣的。

有一些關於RelativeLayouts的小問題,但是一旦進入它們並且提供快速渲染(因爲視圖層次通常很淺),它們非常簡單。祝你好運。

2

可點擊元素的ImageView對我來說似乎是一個不錯的選擇。對於後臺我只想設置你的圖像作爲父佈局即RelativeLayout的

+0

在這種情況下,如果我確保在dp中指定所有尺寸的所有尺寸,我可以預期可點擊的項目相對於背景保持在相同的位置嗎?這是我使用帶有ImageViews的RelativeLayout的主要關注點 - 在大型平板電腦屏幕上(使用高分辨率但寬高比相同的圖像),可點擊的項目應位於與小型手機相同的位置。 – user605331

0

SurfaceView對於整個事情的背景(用你的領域作爲背景)和定期* 的ImageView * S的添加元素。您可以輕鬆地從SurfaceView恢復點擊座標,從而知道觸摸了哪個元素。

無論如何,SurfaceView可能會爲您提供額外的可能性。

+0

ImageView的可以處理他們自己的點擊事件...除非背景需要定期繪製不同的東西,SurfaceView對我來說似乎有些矯枉過正,任何父佈局都可以正常顯示靜態背景圖片。 – FoamyGuy

0

對於大多數圖像,我會爲每個圖像使用ImageView,就像FoamyGuy所說。

如果它們足夠接近以使重疊的邊界框成爲問題,則仍然可以爲每個ImageView使用ImageView,但使用this answer的變體,爲範圍內的每個ImageView測試alpha。

0

我同意FoamyGuy和Booger的觀點,即如果你的唯一目標是把靜態圖像放到屏幕上,當你單擊它們時,RelativeLayout和ImageViews會一直這樣做。

但是...... 如果您正在尋找隨機生成多個圖像在屏幕上的時間間隔,並讓它們四處移動玩家與爆炸時會關閉互動和宮女都被綁架,你應該看看SurfaceView ,畫布,Drawable,TouchEvents和FrameBuffers。