android 填坑笔记

发布时间:2020-08-29 09:39:14 作者:linwg1988
来源:网络 阅读:587

通常我们在使用app的时候都会遇到这么一个场景,点开缩略图查看大图,而现在一般app都为这样的一个功能加上了过渡动画,不会让人觉得这个过程很突兀,体验就好了很多。但是,通常的,新的大图页面的图片加载往往需要时间,所以在实现这样的一个功能的时候,怎样让图片看起来像是没有被改变过并且真正显示在大图上面的是高清图,需要一点小技巧。

其实没有那么复杂,我们只需要对开启的新页面中的大图设置一个初始默认图,这张图片的来源即点击时的那一张缩略图,那么怎样获取这张做略图,相信大家一定有很多的方法,我现在采用的是ImageView.getDrawable()。拿到这个drawable对象之后,那么只需要把它设置到大图上去就好,怎么传值?好吧,其实我使用的是单例对象持有该drawable,在第二个页面开启时获取。这个时候就会遇到一个坑,每次第二个页面从onStop回复到onResume状态(比如页面跳转,或者点击Home键)时,此时关闭大图页面,原来的缩略图就不一样了,它只显示了一部分!

Why?原来是被单例持有的这个drawable它同时被两个ImageView绘制了,在第二次ImageView绘制的时候这张Drawable的bounds被改变了,所以当回到原来的缩略图页面时,控件和drawable的bounds不一样了,显示的效果也就变成了只显示一部分。

那么其实只需要复制一个一样内容的drawable给大图作为占位图就好了,Drawable本身也提供了这样一个方法:drawable.getConstantState().newDrawable() 这样我们就拿到一个同样内容不同对象的drawable了。


推荐阅读:
  1. 一个Android菜鸟“面霸”的面试经历分享
  2. 配置android sdk的问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

小技巧 android 高清图

上一篇:php获取几天前时间的方法

下一篇:django 利用pillow 进行简单的设置验证码功能(python)

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》