转发请注明出处王亟亟的大牛之路
各式各样的进度条啊,加载的自定义View啊 层出不穷,最近在Git上看到一个DownloadProgressBar觉得蛮好看的,就下载下来看了看实现,分享给大家!
先上效果图:
案例包下载地址:https://github.com/panwrona/DownloadProgressBar
包目录:
ps:Android studio项目,Eclipse的小伙伴要自己拆包了
所需的类和一些素材文件也只是3个,东西还算好不是很多,拆起来问题不大。
作为拿来主义的我们!不去看他的具体实现了,毕竟我们还是要使用它,真正的创作靠之后钻研了,先解决现在的需求!
主Activity,也就一个Activity
public class MainActivity extends AppCompatActivity {
//作者的这个例子是点击TextView就+10%然后直至加满完成显示成功的View,val变量为作为进度的变量。
private int val = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final DownloadProgressBar downloadProgressView = (DownloadProgressBar)findViewById(R.id.dpv3);
final TextView successTextView = (TextView)findViewById(R.id.success_text_view);
successTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
val = val + 10;
downloadProgressView.setProgress(val);
}
});
//设置一些字体的属性
Typeface robotoFont=Typeface.createFromAsset(getAssets(), "fonts/Roboto-Light.ttf");
successTextView.setTypeface(robotoFont);
downloadProgressView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//开始动画
downloadProgressView.playManualProgressAnimation();
}
});
//更新进度
downloadProgressView.setOnProgressUpdateListener(new DownloadProgressBar.OnProgressUpdateListener() {
@Override
public void onProgressUpdate(float currentPlayTime) {
}
@Override
public void onAnimationStarted() {
downloadProgressView.setEnabled(false);
}
@Override
public void onAnimationEnded() {
val = 0;
successTextView.setText("Click to download");
downloadProgressView.setEnabled(true);
}
//加载成功
@Override
public void onAnimationSuccess() {
successTextView.setText("Downloaded!");
}
//加载失败时
@Override
public void onAnimationError() {
successTextView.setText("Aborted!");
}
@Override
public void onManualProgressStarted() {
}
@Override
public void onManualProgressEnded() {
}
});
}
}
通常开发所需的一些东西都写好了,只需要 一个DownloadProgressBar
对象初始化一些参数,调用setOnProgressUpdateListener
传入OnProgressUpdateListener()
然后 在这个listener里操作业务逻辑就可以了,是不是很方便。
有些小伙伴如果懒得上Git找楼主给予网盘地址:
点击下载 访问密码 c8f7
有问题欢迎QQ 452270579联系,周末愉快!!