找到个开源项目,地址:https://github.com/Tibolte/ElasticDownload

下载进度效果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5kZHJvaWRfTGFuWWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

builde.gradle:

 compile 'com.github.tibolte:elasticdownload:1.0.+'

測试代码例如以下:BaseActivity.java

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle; import com.lidroid.xutils.ViewUtils; /**
* Created by LanYan on 2015/6/29.
*/
public abstract class BasicActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
config();
setContentView(getLayoutID());
//Annotations view
ViewUtils.inject(this);
initView();
} /*
* The annotation of the control of the UI update
* Method is protected ,child activity super..
* */
protected void initView() {
} /*
* Config application theme style,such as no title bar, or status bar, transparent, etc
* Method is protected,child activity super ..
**/
protected void config() { } /*
* Build contentView id
* onCreate(Bundle saveInstanceState)>setContentView(R.layout.activity_main)
* R.layout.activity_main=getlayoutId();
* */
public abstract int getLayoutID(); @Override
protected void onResume() {
// TODO Auto-generated method stub
if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
super.onResume();
}
}

MainActivity.java

import android.view.View;
import android.view.Window;
import android.widget.Button; import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick; import java.io.File; import is.arontibo.library.ElasticDownloadView; /**
* Created by LanYan on 2015/6/29.
*/
public class MainActivity extends BasicActivity { @ViewInject(R.id.startDownload)
private Button startDownload; @ViewInject(R.id.elastic_download_view)
private ElasticDownloadView mDownloadView; @Override
protected void config() {
super.config();
requestWindowFeature(Window.FEATURE_NO_TITLE);
/* getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);*/
} @Override
public int getLayoutID() {
return R.layout.activity_main;
} @OnClick(R.id.startDownload)
public void onClick(View v) {
String url = "http://img0.bdstatic.com/img/image/6446027056db8afa73b23eaf953dadde1410240902.jpg";
String tagUrl="/sdcard/download/6446027056db8afa73b23eaf953dadde1410240902.jpg";
new HttpUtils().download( url,tagUrl, false, getListener()); } protected RequestCallBack<File> getListener() {
return new RequestCallBack<File>() { @Override
public void onStart() {
super.onStart();
mDownloadView.startIntro();
} @Override
public void onLoading(long total, long current, boolean isUploading) {
super.onLoading(total, current, isUploading);
mDownloadView.setProgress(current/total*100);
} @Override
public void onCancelled() {
super.onCancelled();
mDownloadView.fail();
} @Override
public void onSuccess(ResponseInfo<File> responseInfo) {
mDownloadView.success();
} @Override
public void onFailure(HttpException e, String s) {
mDownloadView.fail();
}
};
}
}

界面颜色配置參照Library value color:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="orange_salmon">#EC5745</color>
<color name="red_wine">#A6463A</color>
<color name="red_wood">#4B1D17</color>
<color name="green_grass">#109121</color>
</resources>

备注:该測试demo用android studio 开发的,假设须要转换成Eclipse project,须要下载相关依赖:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5kZHJvaWRfTGFuWWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

同一时候要注意版本号要求:Android v2.2+。个别特效仅仅支持Api14+

demo下载地址:http://download.csdn.net/detail/anddroid_lanyan/8853065

最新文章

  1. sublimetext3备份
  2. Http权威指南(一)---读书笔记
  3. 【BZOJ】【1202】【HNOI2005】狡猾的商人
  4. OpenCV源码阅读(1)---matx.h---mat类与vec类
  5. centos防火墙设置
  6. realloc 函数的使用
  7. sql server 2008 case when
  8. Cstring类
  9. USB Mass Storage大容量存储的基本知识
  10. 从头编写 asp.net core 2.0 web api 基础框架 (2)
  11. 正则表达式andJS内存空间详细图解
  12. re模块(正则表达式)
  13. &lt;pre&gt;标签的基本样式设置
  14. 大型运输行业实战_day01_1_业务分析
  15. 尝试asp.net mvc 基于controller action 方式权限控制方案可行性(转载)
  16. Ubuntu16.04下Kylin的安装与配置
  17. Android Jni调用浅述
  18. Jquery中复选框选中取消实现文本框的显示隐藏
  19. nginx与php-fpm通讯方式
  20. Intellij IDEA自动生成serialVersionUID

热门文章

  1. 【转】如何在CentOS/RHEL中安装基于Web的监控系统 linux-das
  2. 08-IOSCore - App Store、国际化/本地化
  3. Qt学习之路(58): 进程间交互(QProcess.readAllStandardOutput可以读取控制台的输出)
  4. Android项目实战手机安全卫士(02)
  5. Mysql事务,并发问题,锁机制-- 幻读、不可重复读(转)
  6. Mac中MacPorts安装和使用
  7. 关于js基础easy忘记的那些事儿
  8. C陷阱与缺陷代码分析之第2章语法陷阱
  9. Java里的日期和时间学习
  10. 一起C语言中程序时序问题的排查过程