码迷,mamicode.com
首页 > 其他好文 > 详细

this.getBackground().mutate()的mutate方法

时间:2015-03-09 19:24:15      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:enable   null   图片   资源   

    如果有多个控件同时使用某一个图片资源,并且要改变该资源的状态时就需要用mutate方法。使用mutate是为了更改一个资源的状态时,其余引用该资源的控件不会也更改状态。

    默认情况下,所有的从同一资源(R.drawable.***)加载的drawable实例都共享一个共用的状态,如果你更改一个实例的状态,其余的实例都会接收到相同的通知。使用mutate可以使该drawable状态不定。一个不定状态的drawable不会共享状态。

Drawable bkDrawable = this.getBackground().mutate();

if (null != bkDrawable)

{

      if (enable)

      {

             bkDrawable.clearColorFilter();

      }

      else

      {

             //通过setColorFilter来改变drawable的状态,如果不用mutate,其余引用了该背景

                的资源也会被设置这个ColorFilter

             bkDrawable.setColorFilter(m_disableColor, PorterDuff.Mode.DST_OUT);

      }

      this.setBackgroundDrawable(bkDrawable);

}


this.getBackground().mutate()的mutate方法

标签:enable   null   图片   资源   

原文地址:http://6169621.blog.51cto.com/6159621/1618580

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!