web-dev-qa-db-ja.com

クリックスルーXMLでAndroidボタンの背景を変更する

onClickに適用されるXMLファイルのボタンに代替の背景画像/色を指定する方法はありますか、またはonClickListenerButton.setBackground()を実行する必要がありますか?

33
nbarraille

コードを使用して画像を変更するには

public void onClick(View v) {
   if(v == ButtonName) {
     ButtonName.setImageResource(R.drawable.ImageName);
   }
}

または、XMLファイルを使用して:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
  <item Android:state_pressed="true"
   Android:drawable="@drawable/login_selected" /> <!-- pressed -->
  <item Android:state_focused="true"
   Android:drawable="@drawable/login_mouse_over" /> <!-- focused -->
  <item Android:drawable="@drawable/login" /> <!-- default -->
</selector>

OnClickに次のコードを追加するだけです:

ButtonName.setBackgroundDrawable(getResources().getDrawable(R.drawable.ImageName));
102
David

SDKの最新バージョンでは、setBackgroundResourceメソッドを使用します。

public void onClick(View v) {
   if(v == ButtonName) {
     ButtonName.setBackgroundResource(R.drawable.ImageResource);
   }
}
7
cdrev
public void methodOnClick(View view){

Button.setBackgroundResource(R.drawable.nameImage);

}

linearLayout内のボタンを使用して、Linearのサイズに調整することをお勧めします。

2
Alex Zaraos

試してください:

public void onclick(View v){
            ImageView activity= (ImageView) findViewById(R.id.imageview1);
        button1.setImageResource(R.drawable.buttonpressed);}
1
Giant