2012-04-14 75 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