开发者社区 问答 正文

最近在做Android项目,遇到一个问题,需要判断一个控件的背景图片是不是某张图片

如题,

 all.setBackgroundResource(R.drawable.bg_cloudy_day);

Drawable drawable=getResources().getDrawable(R.drawable.bg_cloudy_day);
 Drawable drawable1=all.getBackground();
 但是判断if(drawable==drawable1){
 }

结果是false,大神告诉我为什么啊,该怎么去判断呢

展开
收起
爵霸 2016-03-25 10:31:44 2709 分享 版权
1 条回答
写回答
取消 提交回答
  • 直接比较Drawable肯定是行不通的,你虽然引用的是同一个资源,但是它们是2个不同的对象,这就已经是false了,还有就是同一楼说的,java里等号只比较内存地址,这就更false了,建议你换一个思路,不用比较Drawable,android里每个图片系统都会给他对应生成一个R值,你直接比较这个值吧。记得用equals比较。

    2019-07-17 19:13:42
    赞同 展开评论