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

网站开发与app开发的区别个人可以做社区网站

网站开发与app开发的区别,个人可以做社区网站,免费素材网站psd,想建个企业网站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.15wanjia.com/news/167881.html

相关文章:

  • 新乡网站建设服务做网站接私活流程
  • 上海建设工程咨询网站网络营销的特点决定了它不能满足
  • 营销型网站建设公司哪家好谁家网站用户体验做的好
  • 甜品网站建设策划书不锈钢网片
  • 网站制作2019趋势找外包公司做个网站多少钱
  • 亚马逊海外网站网易免费企业邮箱注册申请
  • 企业建站1年河北省建设厅网站运行条件
  • 东莞南城外贸网站建设手机做电商怎么赚钱
  • 如何做网站优化的内容企业网站设计费用
  • 目前国内做情趣最好的网站台州网站外包
  • 网站改版的方式大致有最新网站备案教程
  • 陵水网站建设方案淘宝客网站整站源码
  • 网站改版费用莱芜金点子招聘电子版
  • 南宁网站建设公司比优建站网络教育网站建设
  • 广西水利电力建设集团网站宁波网站建设公司信息查询
  • 金泉网网站建设网站页面设计和结构的技巧
  • 京润珍珠企业网站优化学做网站培训机构
  • 最炫的网站小说关键词自动生成器
  • 信阳建设网站哪家好企业网站推广建设
  • 网站正在建设中是什么意思网络营销首先要
  • 如何做单页网站视频深圳做服装设计网站的公司
  • 给手机开发网站免费企业网页
  • 中国建设质量网官方网站公众号做电影网站
  • 不用代码做网站关闭wordpress评论 通过修改代码的方法
  • 网站开发培训达内wordpress自定义代码在哪里
  • 宜春建设局官方网站用php怎么做网站
  • 网站推广公司网站wordpress 游客评论
  • 关于协会网站建设的意见网站推广软文
  • 网站访客qq号码获取app制作教程下载
  • 做机械的有什么网站深圳网站建设 设计