Kotlin-->模仿QQ发送图片进度效果
2017-11-21 09:45
387 查看
效果图:
效果分析
1. 带圆角的布局.(Canvas的clipPath方法实现, 不在本文介绍)
2. 蒙层(绘制一个有透明度的黑色)
3. 进度百分比(Canvas的drawText, 难点就是控制绘制的x和y坐标)
4. 白色进度圆圈(本文介绍,难点1)
5. 最外层是具有一定透明度的白色进度圆圈(实现方法和4一致)
在Android中, 要绘制 圆柱形圆圈 , 及其不容易.
有同学可能会说用
所以, 我这里采用android的
相信下面的图, 你应该很熟悉.
这就是
我这里使用的就是
思路就是:
1. 先绘制一个半径比较大的圆. 对应图中
2. 再绘制一个半径略小的圆, 对应图中
需要注意的是, 使用
点击查看源码
请使用QQ扫码加群, 小伙伴们在等着你哦!
关注我的公众号, 每天都能一起玩耍哦!
效果分析
1. 带圆角的布局.(Canvas的clipPath方法实现, 不在本文介绍)
2. 蒙层(绘制一个有透明度的黑色)
3. 进度百分比(Canvas的drawText, 难点就是控制绘制的x和y坐标)
4. 白色进度圆圈(本文介绍,难点1)
5. 最外层是具有一定透明度的白色进度圆圈(实现方法和4一致)
在Android中, 要绘制 圆柱形圆圈 , 及其不容易.
有同学可能会说用
drawArc实现, 效果可以达到, 但是控制起来想当蓝瘦.
所以, 我这里采用android的
Xfermode模式绘制.
相信下面的图, 你应该很熟悉.
这就是
Xfermode模式图, 不同的模式,绘制出来的效果不一样.
我这里使用的就是
SRC_OUT模式.
思路就是:
1. 先绘制一个半径比较大的圆. 对应图中
Src
2. 再绘制一个半径略小的圆, 对应图中
Dst, 同时设置
Paint的
SrcOut模式, 就可以达到效果
需要注意的是, 使用
Xfermode模式时, 尽量在新的Canvas上绘制, 不要在
View.onDraw方法中的
canvas绘制, 因为可能会无效.
circleCanvas?.let { it.save() it.translate((measuredWidth / 2).toFloat(), (measuredHeight / 2).toFloat()) paint.xfermode = clearXF //清理之前的图像 it.drawPaint(paint) paint.xfermode = null //绘制圆圈 paint.color = circleColor it.drawCircle(0f, 0f, circleOuterRadius + (circleOuterAnimMaxRadius - circleOuterRadius) * animatorValue, paint) //绘制外圈圆 paint.xfermode = srcOutXF it.drawCircle(0f, 0f, circleInnerRadius, paint) //绘制略小的圆 paint.xfermode = null it.restore() canvas.drawBitmap(circleBitmap, 0f, 0f, null) //绘制好的bitmap, 通过此方法绘制在View上 , 0f, 0f, null) }
点击查看源码
联系作者
点此快速加群请使用QQ扫码加群, 小伙伴们在等着你哦!
关注我的公众号, 每天都能一起玩耍哦!
相关文章推荐
- android自定义View实现图片上传进度显示(仿手机QQ上传效果)
- 实现微信和QQ图片加载显示进度的效果-LoadingProgress
- 模仿QQ快速显示图片效果
- android模仿qq下拉放大图片以及阻尼效果
- Android 模仿微信发送图片 钟罩效果
- android自定义View实现图片上传进度显示(仿手机QQ上传效果)
- 模仿Lofter QQ 点击图片放大效果
- android自定义View实现图片上传进度显示(仿手机QQ上传效果)
- Android-->模仿QQ7.0底部导航效果
- 淘宝首页图片切换效果模仿
- [转]下面是模仿的DropDownList的效果,支持图片,多列,换行等
- 每隔一定时间更换图片<多图片模拟gif效果>
- jQuery模仿的QQ投票效果
- 模仿google首页图片动画效果 (css+javascript)
- Delphi中使用TRichEdit或TMemo模仿QQ按Ctrl+Enter发送信息,屏蔽换行
- C# 模仿QQ、MSN消息提示系列 二、基本效果模仿包含代码
- C# 模仿QQ、MSN消息提示系列 四、bug修改 效果优化
- 模仿QQ和MSN消息提示的效果(转载)
- 模仿QQ与MSN消息提示效果
- jQuery模仿的QQ投票效果