我有以下图像按钮:
<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);
但没有任何成功。我想问一下,如何以正确的方式做到这一点?
非常感谢您的任何建议。
答案 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);