Android 台灣中文網

標題: drawable bitmap和 animation的問題 [打印本頁]

作者: mingminglam    時間: 2013-5-27 16:40
標題: drawable bitmap和 animation的問題
本人初入Android領域, 發言有錯請見諒

小生正在嘗試為一個多人連線遊戲寫一個船戰結束的動畫,當玩家操縱的船被擊沉就會運行該動畫
假如只是該船爆炸的動畫小生可以用frame by frame animation做出來
但要求是以該船為中心, 在某範圍內的船都需要顯示出來(會從服務器得到船只座標)
所以小生的構思就是, 該船位於中心並顯示爆炸動畫
而在範圍內的船就以drawable bitmap來顯示

範圍內別的船是bitmap檔
爆炸動畫都是bitmap檔

可是在技術上遇上問題
drawable小生只會用另外一個class來設一個新的view(命名為drawView)然後在drawView上畫bitmap圖
而爆炸的動畫小生只會在activity_main.xml (原本內置的view)弄一個imageView, 然後動畫一張一張圖的播放

問題來了:
在以上兩個情況小生動用了兩個view, MainActivity裡定義任何一個都不能顯示另外一個view:
DrawView drawView;
setContentView(R.layout.activity_main);
setContentView(drawView);
想請問有方法能在activity_main.xml裡顯示bitmap圖片嗎,需要能在activity裡getXY()得到座標指定位置的
或者有方法能在drawView裡面顯示動畫嗎??
或者有其他更好的解決方法?


另外小生有想過另外一個方法
整個動畫都只用drawable去畫bitmap
可是問題是小生不懂得如何消除已畫在view上的bitmap
以及如何設定畫bitmap動作的延遲
意思為:
1sec. 顯示各個船只
2sec. 中心船只(玩家控制的船被擊沉)船身(左下方)顯示小爆炸
3sec. 船身右上方顯示小爆炸
4sec. 船身中心及右下方顯示小爆炸
5sec. 船身顯示大爆炸
6sec. 中心船只船身只餘下殘骸並冒煙
如何在期望的時間消除上一秒的圖片並顯示該秒的圖片?
注: 除了中心船只, 其他船只並無動畫, 只會靜態顯示

作者: ploglin    時間: 2013-5-27 16:40
如果你是用類似 custom view 的方式,那只要在你 setContentView 中所設定的 xml 中,放入你的 View 就可以了。

例如:你的
package name 是 com.test
view class name 是 MyView.java

  1. setContentView(R.layout.main)
複製代碼
只要在 main.xml 中,加入

  1. <com.test.MyView
  2. android:layout_width="match_parent"
  3. android:layout_height="wrap_content">
  4. </com.test.MyView>
複製代碼
這樣應該就解決你的問題了
作者: ploglin    時間: 2013-5-28 08:59
你可以用動態產生的方式,即時產生一些你要顯示的元件
請參考下面的文章
http://myandroidsolutions.blogspot.tw/2012/06/android-layoutinflater-turorial.html
http://mobile.dzone.com/news/android-ui-%E2%80%93-inflate-xml
作者: mingminglam    時間: 2013-5-29 17:21
ploglin 發表於 2013-5-28 08:59
你可以用動態產生的方式,即時產生一些你要顯示的元件
請參考下面的文章
http://myandroidsolutions.blogsp ...

多謝回答
可以解釋深入一點嗎?
在我的情況裡要如何運用?
作者: ploglin    時間: 2013-5-29 17:38
我給連結中都有實際的範例去教你怎麼動態新增 view 在原本的主 view 上了。

作者: mingminglam    時間: 2013-5-30 12:14
ploglin 發表於 2013-5-29 17:38
我給連結中都有實際的範例去教你怎麼動態新增 view 在原本的主 view 上了。
...

有個小問題求解, 為什麼大多網上例子中xml裡都是LinearLayout 而我ADT裡的是RelativeLayout?
這有影響嗎?
作者: ploglin    時間: 2013-5-30 13:11
adt 版本的關係,比較舊的版本預設都是給 LinearLayout ,但到了後期的 adt 預設都是給 RelativeLayout ,自己換掉就好了
作者: mingminglam    時間: 2013-5-30 16:13
ploglin 發表於 2013-5-30 13:11
adt 版本的關係,比較舊的版本預設都是給 LinearLayout ,但到了後期的 adt 預設都是給 RelativeLayout , ...

上面網址教學是把一個xml的view加到主xml view裡去
可是我的view是public class DrawView extends View這樣是用java寫出來
然後在上面用drawable畫船
這情況要怎樣把這種view加到xml 主view裡?

還有,這種加法得出來的情況是DrawView的東西像圖層那樣蓋在主view上面?
還是像網裡說的只是加在下面?




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1