实现微信和QQ图片加载显示进度的效果-LoadingProgress
来源:互联网 发布:rar 解压缩 for mac 编辑:程序博客网 时间:2024/06/10 07:44
分析
从网络上加载图片是一种耗时的操作,当加载的图片体积越大,消耗的时间也会更长。向ImageView添加一个进度条的话,可以起到一定的效果。而在我们Android里面,据我了解,想实现ImageView添加进度条的方法有两种:
1.新建一个类extends ImageView,在draw()方法里面画进度。
2.可以在你的ImageView外围添加RelativeLayout,然后,在里面加多一个ProgressBar。
LoadingProgress用的都不是以上两种方法。而是采用了extends Drawable的形式,然后注入到ImageView图层上面。
对比
先从上面第二种来说,在外围嵌套RelativeLayout再放多一个ProgressBar,如果在ListView里面这样来写的话,性能绝对会受到影响,因为多绘制两个控件,Android就要多点耗时时间,内存也会占用。
第一种和我的那种对比的话,我的那种可能会相对占用一点内存,但是相对的,灵活性和扩展性就高了,为什么这样说呢?比如,你有时候需要用到手势缩放这种Extends ImageView的控件,总不可能继承与手势缩放,再重新封装代码把?
我的只要是继承于ImageView,都可以实现像QQ和微信那种加载进度条,可以动态的调整圆环大小和字体大小,颜色和其他的。
附上效果图
用法
//用法也是挺简单的,只需要几行代码 CircleProgress progress = new CircleProgress.Builder() // .....设置你的属性,园底层颜色,进度颜色,字体大小颜色等.. .build();//返回CircleProgress /********** * 如果你不想圆形进度条,你可以使用其他的 * 比如:RectangleProgress(长形进度条) * RotateProgress(自动旋转的进度条) * LevelProgress(这个我也不好解析,类似水杯的那种效果) */ //对于使用Fresco框架的 progress.injectFresco(target);//SimpledraweeView //除了Fresco框架其他的使用这个方法 progress.inject(target);//target为你的ImageView //接着加载你的图片把
最后,你需要监听到图片下载进度变化的事件,Fresco框架的不需要。
在你的进度回调方法里面:
@Override public void update(long current,long total){ //当前进度值 progress.setLevel((int)current); //最大进度值 progress.setMaxValue(total); }
对于使用Glide和Picasso框架的人来说,获取进度变化的回调可能会有点困难,不过可参考我的DEMO,使用Okhttp3拦截事件,不过也有点问题,有些图片加载不出来,希望有人能指正一下我!
Github
https://github.com/peng8350/LoadingProgress
欢迎大家来star一下我,我是第一次写开源项目,难免会有一些问题,希望大家可以提出来!
- 实现微信和QQ图片加载显示进度的效果-LoadingProgress
- [js效果] 图片加载进度实时显示
- js效果 图片加载进度实时显示
- android自定义View实现图片上传进度显示(仿手机QQ上传效果)
- android自定义View实现图片上传进度显示(仿手机QQ上传效果)
- android自定义View实现图片上传进度显示(仿手机QQ上传效果)
- QQ或者微信客户端加载本地图片是如何实现的?
- iOS实现微信/QQ显示最近拍摄图片的功能
- 各种加载和圆形进度的效果
- HTML5+javascript实现图片加载进度动画效果
- 图片加载进度实时显示
- Kotlin-->模仿QQ发送图片进度效果
- 仿微博、微信QQ,包含展示动态(Feed)图片,和识别包含超链接、#字话题、@人的文本效果。
- [iOS] 高仿 QQ、微信效果的图片浏览器(支持原图和缩略图、多种手势、CocoaPods)
- viewpager+fragment的懒加载实现微信点击和滑动切换功能(切换效果)
- ionic 、ionic-image-lazy-load网络图片的懒加载和和加载效果,居中显示
- android实现文字渐变效果和歌词进度的效果
- android实现文字渐变效果和歌词进度的效果
- java经典编程题
- imageView加载图片中setImageUri和setImageBitmap的区别
- 高斯算法实现毛玻璃背景图片
- 算法--偏差,方差,标准差,协方差,相关系数及相关理解
- openfire+smack添加好友申请 Smack 4.1.8 and 4.2.0-beta2 添加好友请求以及确认
- 实现微信和QQ图片加载显示进度的效果-LoadingProgress
- GIT贡献统计
- HelloCharts(一、LineChart)
- Windbg使用
- 【Android】Broadcast广播机制总结
- 自定义简易实现 曲面效果
- Oracle概述
- css超出宽度显示省略号
- 【预研】关于互联网广告:半小时读懂互联网广告新生态