2011-03-18 36 views
0

如果有人能幫我解決我的問題,我將不勝感激。 我想在有人點擊它時更改ImageView中的圖像。我把我的圖像放在一個數組中,我使用一個while循環來遍歷所有的圖像。每次點擊更改ImageView中的圖像

我的問題是,雖然第一個圖像(image8,不在數組中)在視圖中顯示所有其他(在創建OnClickListener後)不要。其實沒有什麼反應,我不知道錯誤在哪裏。提前致謝。

這是有問題的代碼:

final int array[]=new int[5]; 
    array[0]= R.drawable.image6; 
    array[1]= R.drawable.image4; 
    array[2]= R.drawable.image9; 
    array[3]= R.drawable.image4; 
    array[4]= R.drawable.image5; 

ImageView touchView = (ImageView)findViewById(R.id.imageview); 

touchView.setOnTouchListener(new View.OnTouchListener() 
{ 
    @Override 
public boolean onTouch(View touchView, MotionEvent ev) { 
    //get coordinates of touch event 
     int x = (int)ev.getRawX(); 
     int y = (int)ev.getRawY(); 

---代碼所缺少---

 ((ImageView)touchView).setImageResource(R.drawable.image8); 

     touchView.setOnClickListener(new View.OnClickListener() { 
     int counter = 0; 
     @Override 
     //Image change on every click 
     public void onClick(View touchView) { 

      while(counter<5){ 
      ((ImageView) touchView).setImageResource(array[counter]); 
         counter++; 

    }); 
+0

「int array [] = new int [5]; {」。我認爲這個分號有點失落。它在那裏做什麼?此外,{緊隨着;未正確關閉。你試圖做int數組[] =新的int [] {R.drawable.image6,R.drawable.image4,R.drawable.image9,R.drawable.image4,R.drawable.image5}; ?? – gngr44 2011-03-18 02:23:37

+0

謝謝大家的幫助。我設法用ViewFlipper做我想做的事。 – Tsarl 2011-03-21 01:54:28

回答

1

你不能在那樣的順序改變圖像,並期望什麼可以炫耀的屏幕。你應該使用點擊開始一個單獨的線程來完成圖像動畫。請參閱android.view.animation package的說明。聽起來像AnimationDrawable班會給你正是你想要的。

+0

感謝您的回覆。當用戶點擊視圖時,我希望數組中的圖像發生更改,而不是在預定義時間後自動更改。 – Tsarl 2011-03-18 04:13:39

+0

'AnimationDrawable'就是你想要的。你只需點擊一下'start()'方法即可。 – 2011-03-18 12:46:28