用ImageView用getDrawable()得到的Drawable

getBaseContext().getResources().getDrawable()取得的图片不一致?
例如对于drawable:R.drawable.l,先设置为ImageView iv.setImageResource(R.drawable.l);
然后用iv.getDrawable()

getBaseContext().getResources().getDrawable(R.drawable.l)
取得drawable不相等?
用==和equals都不相等,是怎么回事?

解决方案 »

  1.   

    为什么要一样呢?
    两个drawable对象。
    可能共享同一张png图片,但两个drawable应该还是两个对象。
      

  2.   

    从sd卡读取一个图片文件,怎么把路径设置到getDrawable里来 或者有别的方法可以把路径设置进来
      

  3.   

    楼主大神在?我现在也遇到了这个问题,SOS~~~~~~~~~~~~
      

  4.   

    设置完iv.setImageResource(R.drawable.l)后,也要用getResources().getDrawable(R.drawable.l),而不是iv.getDrawable()。
    你调用了getDrawable(R.drawable.l)两次,将会获得俩个不同的对象,因为这样会获取俩个新的ImageDrawable().
    你可以使用Drawable.getConstantState()来比较它们,当然有时候也会报错的。
      

  5.   

    比较ConstantState对象,
    类似于:
    ConstantState icon = mContext.getResources().getDrawable(R.drawable._smsmms).getConstantState();
    ConstantState icon2 = imageView.getBackGround().getConstantState();