我为一个ImageButton编码了onClick方法,我必须将按钮中的图像与我的资源文件夹中的另一个图像进行比较。
这是我编写的代码,在其中放置了一些日志消息:
public void onClick(View v){
Log.e(LOGTAG, "bolarojo: "+getResources().getDrawable(R.drawable.bolarojo).getConstantState().toString());
Log.e(LOGTAG, "bolaclic: "+v.getBackground().getConstantState().toString());
if(v.getBackground().getConstantState().equals(getResources().getDrawable(R.drawable.bolarojo).getConstantState())){
Log.e(LOGTAG, "buh");
它显示:
bolarojo:android.graphics.drawable.BitmapDrawable$BitmapState@4106ac08 bolaclic:android.graphics.drawable.StateListDrawable$StateListState@41070780
由于v持有R.drawable.bolarojo,日志消息应该不一样吗?无论如何,我不理解为什么它不显示“ buh”。
最佳答案
好吧,终于我解决了。我做了一个从视图到ImageButton的转换
ImageButton bla=(ImageButton)v;
然后我使用了getDrawable()方法,它很好用:D
bla.getDrawable().getConstantState().equals(getResources().getDrawable(R.drawable.bolarojo).getConstantState());