开发者社区> 问答> 正文

最近在做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 2569 0
1 条回答
写回答
取消 提交回答
  • 直接比较Drawable肯定是行不通的,你虽然引用的是同一个资源,但是它们是2个不同的对象,这就已经是false了,还有就是同一楼说的,java里等号只比较内存地址,这就更false了,建议你换一个思路,不用比较Drawable,android里每个图片系统都会给他对应生成一个R值,你直接比较这个值吧。记得用equals比较。

    2019-07-17 19:13:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载