强大的开源控件AFinal在图片加载和文件下载的应用
来源:互联网 发布:移动网络怎么样 编辑:程序博客网 时间:2024/06/05 12:42
前言
我们都知道,网络操作是非常复杂的,像是发送http请求,加载网络图片,文件下载等等,我们当然可以自己去屑一些类来实现自己的操作,但是,使用别人已经写好的第三方框架也是一个不错的选择,这里我给大家介绍一个我比较喜欢的框架:AFinal。
实现
网络图片加载
我们都知道在ListView中加载图片,如果处理的不好,很容易出现OOM(内存溢出)的问题,但是,AFinal很好的解决了这些问题,我们不用担心出现内存溢出的问题。文件下载
AFinal还提供了文件下载的功能,我们只需要传入url和下载路径即可,当然还有回调,在回调方法里面提供了onStart(),onSuccess(),onLoading(),onFailure()四个方法来供我们使用,十分方便。
下面是我提供的一个小例子,我们先看一下效果图:
源码:
public class MainActivity extends ActionBarActivity implements View.OnClickListener{ private String pic_url = "http://imgq.duitang.com/uploads/item/201403/05/20140305105955_5mhet.jpeg"; private String music_url = "http://180.96.30.14/dl.softmgr.qq.com/original/Download/ThunderSpeed1.0.29.322.exe?mkey=55b87e1943896bc4&f=2b01&p=.exe"; private ImageView iv_pic; private TextView tv_pro; private Button btn_start; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initListener(); } private void initListener() { btn_start.setOnClickListener(this); } private void initView() { iv_pic = (ImageView) findViewById(R.id.iv_pic); tv_pro = (TextView) findViewById(R.id.tv_pro); btn_start = (Button) findViewById(R.id.btn_start); } @Override public void onClick(View v) { showPic(); downloadMusic(); } //下载音乐文件 private void downloadMusic() { FinalHttp finalHttp = new FinalHttp(); //设置下载路径 String target = Environment.getExternalStorageDirectory().getAbsolutePath()+"/Thunder.exe"; //开始下载请求 finalHttp.download(music_url, target, new AjaxCallBack<File>() { @Override public void onFailure(Throwable t, int errorNo, String strMsg) { super.onFailure(t, errorNo, strMsg); toast("下载失败"); } @Override public void onStart() { super.onStart(); toast("开始下载"); } @Override public void onLoading(long count, long current) { super.onLoading(count, current); DecimalFormat format = new DecimalFormat("0.00"); String pro = format.format(current/(count*1.0)*100); tv_pro.setText("下载进度:"+pro+"%"); } @Override public void onSuccess(File file) { super.onSuccess(file); tv_pro.setText("下载成功"); } }); } //显示图片 private void showPic() { FinalBitmap finalBitmap = FinalBitmap.create(this); Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.mipmap.ic_loading); //普通加载// finalBitmap.display(iv_pic,pic_url); //带加载动画// finalBitmap.display(iv_pic,pic_url,bitmap); //带加载动画以及加载失败显示的图片 finalBitmap.display(iv_pic,pic_url,bitmap,bitmap); } private void toast(String msg){ Toast.makeText(this,msg,Toast.LENGTH_SHORT).show(); }}
代码也比较简单,这里我就不做过多的解释了,大家都可以看明白。
小结
AFinal还有其他的用途,包括Http请求和对数据库的操作,这里我们就不介绍了(因为我还没有使用这两个功能),大家有兴趣的可以自己去关注AFinal的详细信息。
源码下载
AFinal的Github地址:https://github.com/yangfuhai/afinal
0 0
- 强大的开源控件AFinal在图片加载和文件下载的应用
- 快速开发框架Afinal的使用(数据库操作,HTTP请求,网络图片加载,控件绑定)
- 快速开发框架Afinal的使用(数据库操作,HTTP请求,网络图片加载,控件绑定)
- NSOperation 的使用(下载相关) 图片和文件都是可以的 断点续传 图片逐渐显示
- struts2的文件上传和文件下载
- application的应用和文件的操作
- 通过HttpServletResponse对象,实现图片的流方式显示和文件的流方式下载
- 在sun官网上下载的tutorial找不到image和文件的解决办法
- LINUX目录和文件各自的权限说明,以及目录和文件权限之间的关系(应用:配置linux下上传图片的存储目录)
- Android中文件的多点续传,开源框架afinal
- Android批量图片加载经典系列——afinal框架实现图片的异步缓存加载
- Afinal加载网络图片及下载文件使用方法
- Afinal加载网络图片及下载文件使用方法
- Afinal加载网络图片及下载文件使用方法
- Dbutils框架使用和文件的上传和下载
- 简单的Ext文件上传,文件下载和文件删除
- SQL Server 中图片和文件的存取(C#.NET)
- SQL Server 中图片和文件的存取
- 弹出层始终出现在屏幕中间
- 黑马程序员--java--多线程
- php echo 中文乱码解决方法
- 《C/C++/Java/Pascal 程序设计基础》习题集 解题2
- linux端口占用
- 强大的开源控件AFinal在图片加载和文件下载的应用
- 2015多校第一场1004 hdu 5291 Candy Distribution
- Thinkphp 3.2 Nginx 伪静态写法15年7月最新有效
- HDU 1018 Big Number
- Windows文件读写(提高读写速度)
- Bumblebee解决Linux显卡问题 安装过后出现运行失败问题
- LoadRunner函数详解之Lr_save_string和Sprintf
- OAuth认证 / 与新特性页面的配合使用
- UITapGestureRecognizer会屏蔽掉Button的点击事件