zp19910219 2015-12-02 14:53 采纳率: 28%
浏览 3081
已采纳

最近在做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,大神告诉我为什么啊,该怎么去判断呢

  • 写回答

5条回答 默认 最新

  • JackWaiting 博客专家认证 2015-12-03 11:26
    关注

    直接比较Drawable肯定是行不通的,你虽然引用的是同一个资源,但是它们是2个不同的对象,这就已经是false了,还有就是同一楼说的,java里等号只比较内存地址,这就更false了,建议你换一个思路,不用比较Drawable,android里每个图片系统都会给他对应生成一个R值,你直接比较这个值吧。记得用equals比较。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥50 Oracle Kubernetes服务器集群主节点无法访问,工作节点可以访问
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架
  • ¥15 有关sql server business intellige安装,包括SSDT、SSMS。
  • ¥15 stm32的can接口不能收发数据
  • ¥15 目标检测算法移植到arm开发板
  • ¥15 利用JD51设计温度报警系统