admin管理员组文章数量:1586166
本篇文章已授权微信公众号guolin_blog(郭霖)独家发布
最近在学习android的高级view的绘制,再结合值动画的数据上的改变,自己撸了个360手机助手的下载按钮。先看下原版的360手机助手的下载按钮是长啥样子吧:
再来看看自己demo吧,你们尽情的吐槽吧,哈哈:
里面的细节问题还会不断地更改的,gif的动态图是有些快的,这是因为简书要求gif的大小了,这个也冒得办法啊 。所以想看真是效果的筒子们,可以去看demo哈。
细心的朋友可能发现loading状态下左边几个运动圆的最高点和最低点都越界了,这是因为在规定正弦函数的最高点时没考虑圆的半径的长度,因此近两天做了点修改了,效果图如下:
属性也没怎么整理,就抽取出了一些比较常用的几个了:
属性名 | 类型 | 描述 |
---|---|---|
status_text_size | dimension | 状态以及显示百分比的字体大小 |
status_text_color | color | 状态的颜色 |
load_point_color | color | load状态下移动的点的颜色 |
bg_color | color | 整个背景的颜色 |
progress_color | color | 进度的颜色 |
collect_speed | integer | 背景收缩的时间 |
collect_rotate_speed | integer | 背景收缩后中间的load转一圈需要的时间 |
expand_speed | integer | 收缩后背景展开的时间 |
right_loading_speed | integer | loading状态下右边的loading每一次转动时增加的角度 |
left_loading_speed | integer | 左边运动的几个点走一次需要的时间 |
cancel_back_icon | reference | 取消按钮用到的背景图 |
stop_back_icon | reference | 暂停按钮用到的背景图 |
continue_back_icon | reference | 继续按钮用到的背景图 |
代码使用:
项目中直接使用的view:
<com.library.downloading.Down360ViewGroup
android:id="@+id/down_loading_viewgroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:bg_color="#33CCFF"
app:cancel_back_icon="@mipmap/close"
app:continue_back_icon="@mipmap/play"
app:left_loading_speed="2500"
app:right_loading_speed="8"
app:status_text_color="#cccccc"
app:stop_back_icon="@mipmap/stop" />
效果图如下:
供调用的方法有如下:
取消下载:
setCancel();
设置进度:
setProgress(int progress);
设置状态(status:Down360Loading.Status.Normal直接可以取消的操作):
setStatus(Status status);
设置暂停或继续:
setStop(stop:true表示暂停;stop:false表示继续);
接口监听:
public interface OnProgressStateChangeListener {
void onSuccess();
//暂停
void onStop();
//取消
void onCancel();
//继续
void onContinue();
}
gradle依赖:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
...
compile 'com.github.1002326270xc:360Downloading-master:v1.3.1'
...
}
好了介绍就到这里了,如果觉得行的话,进入github的传送门点个star吧,谢谢!!!
如果发现有什么问题,请联系我,我会第一时间给出反馈!!!
大家可以加技术讨论群: 184793647
关于我:
email: a1002326270@163
github:enter
版权声明:本文标题:仿360手机助手下载按钮 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727974490a1140514.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论