Android Bitmap 在decode的时候快速取消(打断)的方法

在做图片浏览的时候经常要取消图片的decode任务,一般做法都是从队列里取消,一旦进入decode的阻塞状态,就不能立刻取消了,只能等到decode完毕,而decode是比较耗时的。网上搜了一圈有人提出,用关闭输入流的方法。
经过试验,关闭输入流的方法确实是有效的,不过图片可能出现半张图的情况。并且在
使用byte数组的情况下无法使用。

不过刚刚发现了一个给力的方法,
那就是 BitmapFactory.Options 里面的

 /**
         *  This can be called from another thread while this options object is
         *  inside a decode... call. Calling this will notify the decoder that
         *  it should cancel its operation. This is not guaranteed to cancel
         *  the decode, but if it does, the decoder... operation will return
         *  null, or if inJustDecodeBounds is true, will set outWidth/outHeight
         *  to -1
         */
        public void requestCancelDecode() {
            mCancel = true;
            requestCancel();
        }

方法说明里说,取消成功Bitmap返回null ,如果是取图片大小,那么全返回-1
不存在图片取得一半的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值