Android:如何在OnClickListener中更改imageButton的src?

时间:2015-11-20 13:02:25

标签: android android-imagebutton

我有以下图像按钮:

   <ImageButton
        android:id="@+id/data_btn_favourite"
        android:src="@drawable/ic_grade_gray"
        style="@style/AppTheme.ListViewItem.FavouriteIcon"/>

以这种方式初始化哪个onClickListener:

holder.favourite.setOnClickListener(mFavouriteBtnListener);


private View.OnClickListener mFavouriteBtnListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Logger.d("Favourite button clicked");
            MyData myDatObj = ((MyData) view.getTag());
            mDataController.markItemAsFavourite(myDatObj, view, holder.favourite);
        }
    };

holder.favourite是ImageButton

在被叫方法中

public void markItemAsFavourite(MyData myData, View view, ImageButton imageButton) {

尝试使用

设置新的图像资源
imageButton.setImageResource(R.drawable.ic_info_blue);

但没有任何成功。我想问一下,如何以正确的方式做到这一点?

非常感谢您的任何建议。

2 个答案:

答案 0 :(得分:0)

在drawable中创建一个xml文件作为imagebtn.xml并粘贴此代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/your_imagename_while_focused"/>
<item android:state_pressed="true" android:drawable="@drawable/your_imagename_while_pressed" />
<item android:drawable="@drawable/image_name_while_notpressed" />  
</selector>

并在您的活动中尝试此操作

button_information.setBackgroundResource(R.drawable.imagebtn);

背景图像在聚焦和按下时会发生变化。

答案 1 :(得分:0)

使用holder.favourite.setImageResource(R.drawable.ic_info_blue);而不是imageButton.setImageResource(R.drawable.ic_info_blue);