当前位置: 首页 > news >正文

蒙阴县城乡建设局网站学会计哪个培训机构比较正规

蒙阴县城乡建设局网站,学会计哪个培训机构比较正规,cms网站系统,深圳集团网站建设Android 自定义view 圆形进度条 前言一、码前分析二、开码1.画笔2.弧度3.圆弧的位置4.暴露给外部设置进度条的方法三、使用四、完整代码 总结 前言 先来看看效果,大概要实现这么一个圆形的进度条 一、码前分析 要实现这么一个进度条的效果,实际上是要画…

Android 自定义view 圆形进度条

  • 前言
  • 一、码前分析
  • 二、开码
    • 1.画笔
    • 2.弧度
    • 3.圆弧的位置
    • 4.暴露给外部设置进度条的方法
    • 三、使用
    • 四、完整代码
  • 总结


前言

先来看看效果,大概要实现这么一个圆形的进度条

在这里插入图片描述


一、码前分析

要实现这么一个进度条的效果,实际上是要画一个圆弧,那么我们需要蓝色的画笔,这个圆弧的弧度,以及这个圆弧应该画在什么位置
在这里插入图片描述


二、开码

1.画笔

代码如下(示例):

    private val progressPaint: Paint = Paint().apply {color = resources.getColor(R.color.ff1DB0CC)style = Paint.Style.STROKEstrokeWidth = 3fisAntiAlias = true}

上面的示例创建了一个画笔progressPaint,它的颜色是ff1DB0CC,填充方式是描边,画笔宽度为3f;值得一提的是isAntiAlias ,设置为true时表示打开抗锯齿,使我们的圆弧更为圆滑。

2.弧度

代码如下(示例):

    private var currentProgress: Float = 0fprivate var maxProgress: Float = 15000fval sweepAngle = 360f * currentProgress / maxProgress

上面的代码示例计算了圆弧的弧度
圆弧的弧度 = 360 ° ∗ 进度条现在的进度 / 进度条总进度 . 圆弧的弧度 = 360°* 进度条现在的进度/进度条总进度. 圆弧的弧度=360°进度条现在的进度/进度条总进度.

3.圆弧的位置

代码如下(示例)

 		val center = width / 2fval radius = center - progressPaint.strokeWidth / 2fval sweepAngle = 360f * currentProgress / maxProgresscanvas.drawArc(center - radius, center - radius, center + radius, center + radius,-90f, sweepAngle, false, progressPaint)

上面的代码示例计算了圆弧绘制的位置,并通过drawArc方法将圆弧绘制出来。

4.暴露给外部设置进度条的方法

代码如下(示例)

    fun setProgress(progress: Int) {currentProgress = progress.toFloat()invalidate()}fun setMaxProgress(max: Int) {maxProgress = max.toFloat()}

三、使用

直接在xml中使用即可,通过暴露方法自己设置进度

      		 <com.zyf.view.CircularProgressBarandroid:id="@+id/progress"android:layout_width="113dp"android:layout_height="113dp"/>

四、完整代码


class CircularProgressBar @JvmOverloads constructor(context: Context,attrs: AttributeSet? = null,defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {private val progressPaint: Paint = Paint().apply {color = resources.getColor(R.color.ff1DB0CC)style = Paint.Style.STROKEstrokeWidth = 3fisAntiAlias = true}private var currentProgress: Float = 0fprivate var maxProgress: Float = 15000foverride fun onDraw(canvas: Canvas) {val center = width / 2fval radius = center - progressPaint.strokeWidth / 2fval sweepAngle = 360f * currentProgress / maxProgresscanvas.drawArc(center - radius, center - radius, center + radius, center + radius,-90f, sweepAngle, false, progressPaint)}fun setProgress(progress: Int) {currentProgress = progress.toFloat()invalidate()}fun setMaxProgress(max: Int) {maxProgress = max.toFloat()}
}

总结

本文介绍了如何实现一个圆形进度条的自定义 View,并分析了需要实现的基本要素,包括画笔、弧度和圆弧的位置。最后给出了完整的代码。

http://www.hkea.cn/news/178184/

相关文章:

  • 网站开发 前景网络推广代理
  • 温州整站推广咨询seo网站推广专员
  • 企业营销型网站团队百度seo排名优化教程
  • 安徽平台网站建设哪里好网络策划与营销
  • 做网站接广告赚钱么凡科建站和华为云哪个好
  • 成都网站建设科技公seo营销外包公司
  • 重庆有哪些做网站 小程序的百度搜索引擎的特点
  • 仁怀哪里可以做网站自动秒收录网
  • 重庆市建设局网站推广软件一键发送
  • 合肥网络推广网络运营网站seo诊断分析和优化方案
  • 网站优化公司免费咨询sem优化推广
  • 个人做网站赚钱么宁波seo推荐推广平台
  • 员工支付做网站的费用分录成都营销型网站制作
  • 专业做网站的公司邢台专业做网站关键词搜索优化
  • 电商网站建设方案模板杭州百度首页优化
  • 网站建设服务价格东莞市网站建设
  • 网站开发所需要的的环境佛山网络推广哪里好
  • php网站的优点关键路径
  • 电子政务与网站建设 总结湖南网站推广
  • 境外网站做网站涉黄互联网媒体广告公司
  • 河南做网站公司汉狮怎么做蛋糕
  • 哈 做网站网店代运营收费
  • 制作网页的三大技术是什么郑州seo顾问
  • 网站建设报价流程行业网站网址
  • 提供邯郸做wap网站网页推广方案
  • 网站从域名广告营销公司
  • 网站链接的常见形式免费广告网
  • 微信微网站开发教程百度大数据平台
  • 网站服务设计引流推广是什么意思
  • 学校网站建设管理办法本周新闻热点事件