2014-04-21 82 views
0

我正在開發一個簡單的遊戲,並在活動中我有2個圖像按鈕:從按鈕的onclick事件訪問另一種觀點認爲

<ImageButton 
     android:id="@+id/btn1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:contentDescription="@string/desc" 
     android:src="@drawable/img1" 
     android:onClick="btn1_click" /> 

    <ImageButton 
     android:id="@+id/btn2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:contentDescription="@string/desc" 
     android:src="@drawable/img2" 
     android:onClick="btn2_click" /> 

而且我顯示被點擊按鈕時,一些動畫:

public void btn1_click(View v) { 
    v.startAnimation(animLeftTranslate); 
} 
public void btn2_click(View v) { 
    v.startAnimation(animRightTranslate); 
} 

當然,只有點擊的按鈕正在動畫,但我想要做的是顯示兩個按鈕的動畫,當他們中的一個被點擊。我怎樣才能做到這一點?

回答

0

你可以通過你自己的方法,即使用屬性做到這一點:

分配一個功能都ImageButton例如btns_clicked()。因此,將android:onClick='btns_clicked'添加到您的兩個按鈕。並在該函數中寫入:

public void btns_clicked(View v) { 
    View btn1 = findViewById(R.id.btn1); 
    View btn2 = findViewById(R.id.btn2); 

    btn1.startAnimation(animLeftTranslate); 
    btn2.startAnimation(animRightTranslate); 
} 
+0

謝謝,這正是我需要的。 – samet

1

而不是使用的,你可以做到這一點在Java代碼:

ImageButton btn1 = (ImageButton) findViewById(R.id.bt1); 
    ImageButton btn2 = (ImageButton) findViewById(R.id.bt2); 

    View.OnClickListener listener = new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      btn1.startAnimation(animRightTranslate); 
      btn2.startAnimation(animRightTranslate); 
     } 
    }; 
    btn1.setOnClickListener(listener); 
    btn2.setOnClickListener(listener);` 

`

+0

謝謝,這解決了我的問題,但@ABFORCE的答案與我的問題匹配得更好。 – samet

1

你可以這樣做如下描述。

<ImageButton 
    android:id="@+id/btn1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:contentDescription="@string/desc" 
    android:src="@drawable/img1" 
    android:onClick="btn_click" /> 

<ImageButton 
    android:id="@+id/btn2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:contentDescription="@string/desc" 
    android:src="@drawable/img2" 
    android:onClick="btn_click" /> 

並在活動中,你必須使用

public void btn_click(View v) { 
if(v.getId() == R.id.btn1) 
    v.startAnimation(animLeftTranslate); 
else if(v.getId() == R.id.btn2) 
    v.startAnimation(animRightTranslate); 
}