2011-11-05 29 views
0

我想知道的是一扇門,這樣的(但在2D):enter image description here圖形和活動

所以我鑫卡特用攪拌機創建它。 第一個問題是:如何在活動背景中實現攪拌機圖像? 在此之後,我的目標是爲門設置動畫...換句話說,允許用戶移動門以關​​閉或打開它,然後輕敲並移動它。

實現此目的的方法是什麼?我需要什麼工具?如何構建項目?

PS:即使圖像中的門是3D,我也會用2D繪製...更簡單。

+0

我相信你可以使用OpenGl來顯示在例如攪拌機。 –

回答

0

您可以使用圖像作爲背景與ImageView。這樣

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <ImageView 
     android:id="@+id/background" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:src="@drawable/door" /> 

</LinearLayout> 

然後在Java中,無論你聽水龍頭或點擊事件,事情做這樣的事情

ImageView background = (ImageView) findViewById(R.id.background); 
background.setImageResource(R.drawable.doorclosed); 

切換到其他圖像。

2

那麼,如果你把一個PNG序列(開門動畫)並得到輕敲滑動從用戶移動,你可以使門的動畫(開/關)只是前後移動,操縱幀率。

0

Craigy的回答是正確的,但是,這隻會產生兩個狀態「打開」和「關閉」。爲什麼不在門關閉的不同階段創建一組或一系列圖像,然後使用;

final Handler handler = new Handler(); 
for (i = 0; i < 5; i++){ 
    handler.postDelayed(new Runnable() { 
     public void run() { 
     switch (i){ 
      case 0: 
     plate.setImageResource(R.drawable.door0); 
     break; 
      case 1: 
     plate.setImageResource(R.drawable.door1); 
     break; 
      case 2: 
     plate.setImageResource(R.drawable.door2); 
     break; 
      case 3: 
     plate.setImageResource(R.drawable.door3); 
     break; 
      case 4: 
     plate.setImageResource(R.drawable.door4); 
     break; 
      } 
     } 
    },"insert a number for the delay s ie. 10)"; 
    } 

在短暫的延遲後呈現每個圖像。這可能是由ontouch事件偵聽器或按鈕單擊啓動的操作。