ImageView切换两种状态下的模式

1、xml对ImageView的src要设置成selector

 <ImageView
                android:id="@+id/like_icon"
                android:layout_width="@dimen/will_like_icon_width"
                android:layout_height="@dimen/will_like_icon_height"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                android:layout_marginLeft="10dp"
                android:src="@drawable/selector" />

drawable/selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/clickgreat" android:state_pressed="true"/>
    <item android:drawable="@drawable/clickgreat" android:state_selected="true"/>
    <item android:drawable="@drawable/great"/>
</selector>

切换图片

1 //深色
2 likeIcon.setSelected(true);
3 //浅色
4 likeIcon.setSelected(false);

Done

时间: 2024-11-18 21:20:19

ImageView切换两种状态下的模式的相关文章

两种高效的并发模式(半同步/半异步和领导者/追随者)

一.并发编程与并发模式 并发编程主要是为了让程序同时执行多个任务,并发编程对计算精密型没有优势,反而由于任务的切换使得效率变低.如果程序是IO精密型的,则由于IO操作远没有CPU的计算速度快,所以让程序阻塞于IO操作将浪费大量的CPU时间.如果程序有多个线程,则当前被IO操作阻塞的线程可主动放弃CPU,将执行权转给其它线程.(*IO精密型和cpu精密型可以参考此文:CPU-bound(计算密集型) 和I/O bound(I/O密集型)) 并发编程主要有多线程和多进程,这里我们先讨论并发模式,并发

两种高效的事件处理模式(Proactor和Reactor)

典型的多线程服务器的线程模型 1. 每个请求创建一个线程,使用阻塞式 I/O 操作 这是最简单的线程模型,1个线程处理1个连接的全部生命周期.该模型的优点在于:这个模型足够简单,它可以实现复杂的业务场景,同时,线程个数是可以远大于CPU个数的.然而,线程个数又不是可以无限增大的,为什么呢?因为线程什么时候执行是由操作系统内核调度算法决定的,调度算法并不会考虑某个线程可能只是为了一个连接服务的,时间片到了就执行一下,哪怕这个线程一执行就会不得不继续睡眠.这样来回的唤醒.睡眠线程在次数不多的情况下,

thinkjs&mdash;&mdash;一个字段一种数字代表两种状态

问题来源: 现有一张company数据表,其中有一个字段state(-2:待审核:-1:禁用:0:正常:1:会员过期:),一般而言,在前期设计数据表的时候,会将每种状态下都用一种特定的数字代表,但是这里起初并没有将-2代表的待审核和拒绝状态分开,即-2代表着两种状态:待审核以及拒绝.现要求在字段state不增加值的情况下,根据company中的另外一个字段refuse是否为空来区分是待审核或者是拒绝. 分析: 拿到需求,先分析一下:在原来-2的基础之上,在查询条件中增加refuse条件即可. 解

CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking)

CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking) 我在(Modern OpenGL用Shader拾取VBO内单一图元的思路和实现)记录了基于Color-Coded-Picking的拾取方法. 最近在整理CSharpGL时发现了一个问题:我只解决了用glDrawArrays();渲染时的拾取问题.如果是用glDrawElements();进行渲染,就会得到错误的图元. 本文就彻底解决这个拾取的问题.

Spring 实现两种设计模式:工厂模式和单态模式

在Spring 中大量使用的以下两种设计模式:工厂模式和单态模式. 工厂模式可将Java 对象的调用者从被调用者的实现逻辑中分离出来,调用者只需关心被调用者必须满足的规则(接口) ,而不必关心实例的具体实现过程.这是面向接口编程的优势,能提高程序的解耦,避免所有的类以硬编码方式耦合在一起. 如果所有的类直接耦合,极易形成"骨牌效应",假如B 类调用了A 类,一旦A 类需要修改,则B 类也需要修改:假如C 类调用了B 类,则C 类也需要修改......依次类推,从而导致整个系统都需要改写

小程序项目别的页面初始化拿到的值为两种状态(已解决)

小程序项目别的页面初始化拿到的值为两种状态,其他页面拿不到app.js全局globalData下全局的cookie app.js文件 onLaunch: function () { console.log('app-onLaunch') this.getUserInfo(); }, onShow:function(){ console.log('app-onShow') }, // 获取用户信息,登录 getUserInfo: function (callBack) { let that = t

PE知识复习之PE的两种状态

一丶熟悉PE的整体结构 从下面依次网上看.可以得出PE结构 其中DOS头有DOS头结构 也就是 IMAGE_DOS_HEADER 关于结构体的各项属性.前边已经写过了.本系列博客就是加深PE印象.理解复杂的原理. IMAGE_DOS_HEADER 大小 64个字节    十六进制 0x40字节 IMAGE_FILE_HEADER 大小 20个字节     十六进制 0x14字节 IAMGE_OPTIONAL_HEADER 224个字节 十六进制  0xE0 IMAGE_SECTION_HEADE

Atitit 如何创新 创新只有在两种条件下发生:自由、效率。

创新是如何发生的呢? 创新只有在两种条件下发生:自由.效率.在自由的环境下,对效率的追逐等于创新.如果你不自由,你的思想不够开阔,你脑洞不够大,就无法创新.但如果只是脑洞够大,净搞些乱七八糟的也没什么用,还要再加上效率. 观察一下人类的历史,全部是对效率的提升:马车到汽车,还嫌不够快,飞机出来了,飞机不够快,火箭出来了.再来看通讯,以前飞鸽传书,后来电报,嫌不够快,电话也就出来了. 现在已经全面转向智能手机.今天推广渠道实在是太牛了,你要100万用户,马上就给弄.有好多三线城市的年轻人都不工作了

NSButton文本颜色设置和Action两种状态行为

//获取文本颜色: - (NSColor *)textColor { NSAttributedString *attrTitle = [self attributedTitle]; int len = [attrTitle length]; NSRange range = NSMakeRange(0, MIN(len, 1)); // get the font attributes from the first character NSDictionary *attrs = [attrTitle