我刚刚在drawable文件夹下添加了一个新的res文件夹。在drawable文件夹中,我从ic_launcher.png文件夹复制了drawable-hdpi文件。
当我按下按钮时,我想通过新的标准ImageButton图像进行更改。我写了一些代码,但是当我启动应用程序时,它崩溃了。

Button imgButton;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    findViewById(R.id.imgButton).setOnClickListener(imgButtonHandler);
}

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

    public void onClick(View v) {

        imgButton.setBackgroundResource(R.drawable.ic_launcher);

    }
};

编辑:我更改为此,这也行不通。
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imgButton = (Button) findViewById(R.id.imgButton);
    imgButton.setOnClickListener(imgButtonHandler);
}


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

    public void onClick(View v) {
        imgButton.setBackgroundResource(R.drawable.ic_launcher);

    }
};

编辑2:这工作。谢谢大家。
ImageButton button;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button= (ImageButton)findViewById(R.id.imgButton);
    button.setOnClickListener(imgButtonHandler);
}


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

    public void onClick(View v) {
        button.setBackgroundResource(R.drawable.ic_launcher);

    }
};

最佳答案

这有点误导了我-应该是setImageResource而不是setBackgroundResource :) !!

以下工作正常:

ImageButton btn = (ImageButton)findViewById(R.id.imageButton1);
 btn.setImageResource(R.drawable.actions_record);

而当使用setBackgroundResource时,实际的图像按钮的图像
在背景图像更改时停留,从而导致看起来难看的imageButton对象

谢谢。

关于android - Android Imagebutton更改Image OnClick,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12249495/

10-11 22:17
查看更多