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

如果有多个控件同时使用某一个图片资源,并且要改变该资源的状态时就需要用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);

}

时间: 2024-10-17 08:36:29

this.getBackground().mutate()的mutate方法的相关文章

[Android UI]ActionBar随ScorllView上下拖动而透明度渐变效果(续1)

根据上一篇ActionBar随ScorllView上下拖动而透明度渐变效果的基本描述,我们自定义的actionbar滚动透明的效果使用起来可能有点繁琐.这次想要在上次的代码内容上(可自动切换.无限滑动的图片广告展示栏的实现分享(续1)),博主太懒了,哈哈,实现这样的效果. 这次的demo很简单,老样子,你可以自己下载demo稍微看看,结构如下: 主界面代码: package org.jan.adviewpaper.demo; import android.app.ActionBar; impor

遗传算法,vector

小袋鼠你往哪儿跳--遗传算法 基础及其本质 有很多袋鼠,它们降落到喜玛拉雅山脉的任意地方.这些袋鼠并不知道它们的任务是寻找珠穆朗玛峰.但每过几年,就在一些海拔高度较低的地方射杀一些袋鼠,并希望存活下来的袋鼠是多产的,在它们所处的地方生儿育女. 想了很久,应该用一个怎么样的例子带领大家走进遗传 算法的神奇世界呢?遗传算法的有趣应用很多,诸如寻路问题,8数码问题,囚犯困境,动作控制,找圆心问题(这是一个国外网友的建议:在一个不规则的多边形 中,寻找一个包含在该多边形内的最大圆圈的圆心.),TSP问题

Logstash过滤器修改数据

数据修改(Mutate) filters/mutate 插件是 Logstash 另一个重要插件.它提供了丰富的基础类型数据处理能力.包括类型转换,字符串处理和字段处理等. 类型转换 类型转换是 filters/mutate 插件最初诞生时的唯一功能.其应用场景在之前 Codec/JSON 小节已经提到. 可以设置的转换类型包括:"integer","float" 和 "string".示例如下: filter { mutate { conver

Spring Cloud gateway 网关服务二 断言、过滤器

微服务当前这么火爆的程度,如果不能学会一种微服务框架技术.怎么能升职加薪,增加简历的筹码?spring cloud 和 Dubbo 需要单独学习.说没有时间?没有精力?要学俩个框架?而Spring Cloud alibaba只需要你学会一个就会拥有俩种微服务治理框架技术.何乐而不为呢?加油吧!骚猿年 上一篇我们讲述了gateway 的路由功能其实也类似与zuul服务的路由转发. 今天主要讲一下断言机制. 内置的断言工厂 介绍 Spring Cloud Gateway将路由作为Spring Web

基于ELK 7.50搭建elastalert 监控报警和权限控制

ELK+监控报警全步骤 需求: 公司要求对出在windows服务器上的日志进行日志分析并根据关键字进行报警,并配置kibana权限控制.下面为详细步骤 环境: centos 7.6 elk版本7.50 (因为7.50版本自带xpack功能,可以满足kibana角色权限控制) 1. windows字符集改成utf8 #创建目录(有就不用创建) C:\WINDOWS\SHELLNEW #创建一个文本文档(txt) 复制到该目录: #命名为:UTF8.txt #文件 -> 另存为- #选择编码格式为:

logstash快速入门

原文地址:http://logstash.net/docs/1.4.2/tutorials/getting-started-with-logstash 英语水平有限,如果有错误请各位指正 简介 Logstash是一个接收,处理,转发日志的工具.支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型.怎么样听起来挺厉害的吧? 在一个典型的使用场景下(ELK):用Elasticsearch作为后台数据的存储,kibana用来前端的报表展示.Logstash在其过程

logstash安装配置

vim /usr/local/logstash/etc/hello_search.conf 输入下面: input { stdin { type => "human" }} output { stdout { codec => rubydebug } elasticsearch { host => "192.168.33.10" port => 9300 }} 注意事项 port 为9300 而不是9200 启动:/usr/local/log

[Android UI]ActionBar随ScorllView上下拖动而透明度渐变效果

我看到越来越多的应用使用这样的效果,如QQ空间5.0的主界面,确实很好看!大概就搜了一下相关的实现方式,发现早就有了相关的方案: 仿QQ空间滚动ActionBar透明度变化Demo 还有我在github上看到就有这样的实现方式,这也是本博文的主要核心内容: 具体请查看:https://github.com/AChep/Header2ActionBar 效果如下: 这是Demo结构: 1.FadingActionBarHelper.java 这个类是处理Actionbar的核心类,处理对scrol

事件循环--单线程原理

http://www.haorooms.com/post/js_xiancheng https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/ 任务队列 主线程:正在执行的代码,会生成函数调用栈. macro-task(宏任务,新名:task)包括:script(整体代码), setTimeout, setInterval, setImmediate, I/O, UI rendering. micro-task(微任