android填坑笔记

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

成都创新互联公司是一家集网站建设,库车企业网站建设,库车品牌网站建设,网站定制,库车网站建设报价,网络营销,网络优化,库车网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

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

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

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


文章题目:android填坑笔记
文章出自:http://scyanting.com/article/jdgcid.html