WIN10圆形进度条
< com.atsgg.customviewdemo09. WaveView
android :layout_width= "match_parent"
android :layout_height= "match_parent"/>
private Paint mPaint; // 画笔对象
private Path mPath; // 路径对象
private int vWidth, vHeight; // 控件宽高
private float ctrX, ctrY; // 控制点的坐标
private float waveY; // 整个 Wave 顶部两端点的 Y 坐标,该坐标与控制点的 Y 坐标增减幅一致 , 以及
private float startX, endX; // 整个 Wave 的左端点 , 与右端点
private boolean isInc; // 判断控制点是该坐移还是右移 ,true 为右移
public WaveView(Context context) {
this(context, null);
}
public WaveView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public WaveView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
// 实例化画笔并设置参数
mPaint = new Paint(Paint. ANTI_ALIAS_FLAG | Paint. DITHER_FLAG);
mPaint.setColor( 0xFF00796B);
// 实例化路径
mPath = new Path();
}
@Override
protected void onSizeChanged( int w, int h, int oldw, int oldh) {
// 获取控件的宽高
vWidth = w;
vHeight = h;
// 计算端点 Y 坐标
waveY = 1 / 8F * vHeight;
// 计算控制点 Y 的坐标
ctrY = - 1 / 16F * vHeight;
startX = - 1 / 4F * vWidth;
endX = 1 / 4F * vWidth + vWidth;
}
@Override
protected void onDraw(Canvas canvas) {
/**
* 设置 Path 起点
* 注意我将 Path 的起点设置在了控件的外部看不到的区域
* 如果我们将起点设置在控件左端 x=0 的位置会使得贝塞尔曲线变得生硬
* 至于为什么刚才我已经说了
* 所以我们稍微让起点往 “ 外 ” 走点
*/
mPath.moveTo( startX, waveY);
/**
* 以二阶曲线的方式通过控制点连接位于控件右边的终点
* 终点的位置也是在控件外部
* 我们只需不断让 ctrX 的大小变化即可实现 “ 浪 ” 的效果
*/
mPath.quadTo( ctrX, ctrY, endX, waveY);
// mPath.cubicTo(ctrX, ctrY,
// (vWidth + 1 / 4F * vWidth) / 2, waveY - 1 / 8F * vHeight,
// vWidth + 1 / 4F * vWidth, waveY);
// 围绕控件闭合曲线
mPath.lineTo( endX, vHeight);
mPath.lineTo( startX, vHeight);
mPath.close();
canvas.drawPath( mPath, mPaint);
/**
* 当控制点的 x 坐标大于或等于终点 x 坐标时更改标识值
*/
if ( ctrX >= endX) {
isInc = false;
}
/**
* 当控制点的 x 坐标小于或等于起点 x 坐标时更改标识值
*/
else if ( ctrX <= startX) {
isInc = true;
}
// 根据标识值判断当前的控制点 x 坐标是该加还是减
ctrX = isInc ? ctrX + 20 : ctrX - 20;
if ( ctrY <= vHeight) {
ctrY += 2;
waveY += 2;
}
mPath.reset();
invalidate();
}
}
WIN10圆形进度条相关推荐
- android 自定义音乐圆形进度条,Android自定义View实现音频播放圆形进度条
本篇文章介绍自定义View配合属性动画来实现如下的效果 实现思路如下: 根据播放按钮的图片大小计算出圆形进度条的大小 根据音频的时间长度计算出圆形进度条绘制的弧度 通过Handler刷新界面来更新圆形 ...
- Android自定义控件NumberCircleProgressBar(圆形进度条)的实现
Android自定义控件NumberCircleProgressBar(圆形进度条)的实现
- html进度条圆圈渐变色,HTML5 canvas带渐变色的圆形进度条动画
jquery-circle-progress是一款带渐变色的圆形进度条动画特效jQuery插件.该圆形进度条使用的是HTML5 canvas来绘制圆形进度条及其动画效果,进度条使用渐变色来填充,效果非 ...
- 微信小程序之圆形进度条(自定义组件)
前言 昨天在微信小程序实现了圆形进度条,今天想把这个圆形进度条做成一个组件,方便以后直接拿来用. 根据官方文档自定义组件一步一步来 创建自定义组件 第一步创建项目结构 打开微信开发者工具创建一个项目, ...
- Android 之 ProgressDialog用法介绍(矩形进度条 和 圆形 进度条)
2019独角兽企业重金招聘Python工程师标准>>> 布局文件: <LinearLayout xmlns:android="http://schemas.andro ...
- 【Android 应用开发】 自定义 圆形进度条 组件
转载著名出处 : http://blog.csdn.net/shulianghan/article/details/40351487 代码下载 : -- CSDN 下载地址 : http://down ...
- android 环形时间显示_Android圆形进度条颜色的设置
最近几天由于项目的需要研究了一下listView的滑动数据动态的更新显示,其中需要在数据加载过程有圆形进度条的显示,遇到的问题是进度条的颜色设置,在网上查了一些资料结合自己的所得分享在此. xml布局 ...
- Android自定义圆形进度条
Android自定义圆形进度条 github地址:https://github.com/opq1289/CircleProgressView 效果图: 无动画: 有动画: 整圆: 切割圆: 具体步骤: ...
- Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
转载请注明地址:http://blog.csdn.net/xiaanming/article/details/10298163 很多的时候,系统自带的View满足不了我们功能的需求,那么我们就需要自己 ...
最新文章
- python paramiko模块中设置执行命令超时值
- python 矩阵基础
- 使用nginx动静分离后,druid被拦截的解决方法
- Spring5参考指南:基于注解的容器配置
- 如何使用阿里云ARMS诊断Java服务端报错问题
- spring mvc 前后端数据交互笔记(解决415,400问题)
- 四、python沉淀之路--元组
- Windows server 2003 DNS子域与委派管理配置指南
- 土方工程量计算表格excel_土方量调配表(Excel公式版)
- 阿里这样的高并发系统是如何做限流的?
- Maven常用命令 - 构建反应堆中指定模块
- 周围像素点的最大均方差替代该点
- 红米note2能刷机没显示无服务器,红米Note2刷机失败怎么办
- matplotlib之2010-2017年各季度国民生产总值散点图
- android如何加密所有的布局文件夹,android:是否可以加密文件夹
- 百度EasyDL实体抽取和关系抽取
- 汽车高级驾驶辅助系统ADAS功能盘点
- matlab零状态响应幅度频谱,matlab零状态、零输入响应
- java JPI中常使用的类介绍即java.lang包下的东西
- 沈航计算机学院杨华,【沈航新青年·实践】电子信息工程学院“电信筑梦,科技振兴”暑期社会实践活动纪实...
热门文章
- 一个ip 不同端口如何对应不同域名
- 美团面试:熟悉哪些JVM调优参数,幸好我准备过!
- Java Collections.frequency()方法具有什么功能呢?
- html5游戏《命令与征服》
- 【嵌入式Linux开发一路清障-连载01】Ubuntu22.04启动U盘制作及系统安装与配置
- matlab 最小频移键控,最小频移键控(MSK)技术的研究与特性分析
- jieba + wordcloud + word2vec实例
- 《单元测试的艺术》学习笔记
- 第2章第15节:使用分栏减少视觉疲劳 [PowerPoint精美幻灯片实战教程]
- php larval框架运行环境,4种Windows系统下Laravel框架的开发环境安装及部署方法详解...