android 圆形拖动条,Android圆形进度条自定义
自定义圆形进度条
示例.png
示例 (2).png
示例 (3).png
示例 (4).png
实现
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
super.onSizeChanged(w, h, oldw, oldh)
//圆心位置
centerPosition!!.x = w / 2
centerPosition!!.y = h / 2
//半径
val maxCirWidth = Math.max(mCirWidth!!, mBgCirWidth!!)
val minWidth =
Math.min(w - paddingLeft - paddingRight - 2 * maxCirWidth, h - paddingBottom - paddingTop - 2 * maxCirWidth)
raduis = minWidth / 2
mOuterRaduis = raduis!! + maxCirWidth / 2
//矩形坐标
mRectF!!.left = centerPosition!!.x - raduis!! - maxCirWidth / 2
mRectF!!.top = centerPosition!!.y - raduis!! - maxCirWidth / 2
mRectF!!.right = centerPosition!!.x + raduis!! + maxCirWidth / 2
mRectF!!.bottom = centerPosition!!.y + raduis!! + maxCirWidth / 2
if (isGradient!!) {
sweepGradientCircle()//圆环颜色渐变
}
}
private fun drawText(canvas: Canvas?) {
canvas!!.drawText(
mValue.toString(),
centerPosition!!.x.toFloat(),
centerPosition!!.y.toFloat(),
mValuePaint!!
)
if (mUnit != null || mUnit != "") {
canvas.drawText(
mUnit.toString(),
centerPosition!!.x + mValuePaint!!.measureText(mValue.toString()) / 2,
centerPosition!!.y.toFloat(),
mUnitPaint!!
)
}
if (mHint != null || mHint != "") {
canvas.drawText(
mHint.toString(),
centerPosition!!.x.toFloat(),
centerPosition!!.y - mHintPaint!!.ascent() + 3,
mHintPaint!!
)
}
}
/**
* 使用渐变色画圆
*/
private fun sweepGradientCircle() {
mSweepGradient =
SweepGradient(centerPosition!!.x.toFloat(), centerPosition!!.y.toFloat(), mGradientColors!!, null)
mCirPaint!!.shader = mSweepGradient
}
/**
* 画圆
*/
private fun drawCircle(canvas: Canvas?) {
canvas!!.save()
if (mShadowIsShow!!) {
mCirPaint!!.setShadowLayer(mShadowSize!!, 0f, 0f, mShadowColor!!)//设置阴影
}
//画背景圆
canvas.drawArc(mRectF!!, mStartAngle!!, mSweepAngle!!, false, mBgCirPaint!!)
//画圆
canvas.drawArc(mRectF!!, mStartAngle!!, mSweepAngle!! * mPercent!!, false, mCirPaint!!)
canvas.restore()
}
圆形进度条api
属性
对应方法
名称
类型
默认值
antiAlias
是否开启抗锯齿
Boolean
false
mCirWidth
外圆环宽度
Float
15f
mCirColor
外圆环颜色
Int
Color.YELLOW
mBgCirWidth
底圆环宽度
Float
14f
mBgCirColor
底圆环颜色
Float
Color.GRAY
animTime
动画时间
Int
1000
value
setValue(value: String,maxValue: Float)
设置值
String
""
valueSize
值大小
Float
15F
valueColor
值颜色
Int
Color.BLACK
maxvalue
setValue(value: String,maxValue: Float)
设置最大值
Float
100F
unit
单位
Float
%
unitSize
单位大小
Float
8F
unitColor
单位颜色
Int
Color.GRAY
hint
提示语
Float
”“
hintSize
提示语大小
Float
10F
hintColor
提示语颜色
Int
Color.GRAY
startAngle
圆环起始角度
Float
270F
sweepAngle
圆环滑过角度
Float
360F
gradient
setGradientColors(gradientColors: IntArray)
渐变色
IntArray
intArrayOf(Color.BLACK, Color.GRAY, Color.BLUE)
isGradient
setIsGradient(isGradient:Boolean)
是否渐变色
Boolean
false
smallCirEnable
setSmallCircleEnable(enable:Boolean)
是否显示起始小圆
Boolean
false
smallCirColor
起始小圆颜色
Int
Color.WHITE
smallCirWidth
起始小圆半径
Float
7F
shadowShow
setShadowEnable(enable: Boolean)
是否显示阴影
Boolean
false
shadowSize
阴影大小
Float
10F
shadowColor
阴影颜色
Int
Color.BLACK
digit
setDigit(digit:Int)
保留小数位数
Int
2
isanim
是否需要动画
Boolean
true
使用
将MyCircleProgressView和attrs.xml下的MyCircleProgressView拷贝到自己的项目下,并修改控件引用,即可使用。
地址
android 圆形拖动条,Android圆形进度条自定义相关推荐
- android图标随着进度条动画,Android开发之ProgressBar字体随着进度条的加载而滚动...
在网上翻阅了很多关于ProgressBar滚动效果,但是始终没有找到适合项目中的这种效果,故自己写这篇文章,记录一下写作过程,给大家做一个参考.先看下最终效果效果图 我这里用的是LICEcap软件录制 ...
- android解压zip文件进度条,Android实现文件解压带进度条功能
解压的工具类 package com.example.videodemo.zip; public class ZipProgressUtil { /*** * 解压通用方法 * * @param zi ...
- android 安全检测 动画,Android仿小米安全中心检测进度条效果
模仿小米安全中心检测效果 废话少说,咱们先上效果图: 这个效果的使用场景并不多,主要是各种检测的时候,比如垃圾清理,手机安全检测, 当然如果你不嫌弃这个效果丑, 也可以用作进度条.哈哈. 下面说点干货 ...
- bootstrap 滚动 进度条_bootstrap动态进度条怎么搞
在本教程中,您将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet Explorer 9 及之前 ...
- Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能
Unity实现类似于苹果视频播放器视频播放进度条及声音进度条拖拽功能 前言 我在之前的博客里介绍过关于VideoPlayer的简单使用流程,之前一直想研究下videoPlayer中的使用进度条控制视频 ...
- android 图片处理过程中添加进度条,[Android] 随时拍图像处理部分总结及源码分......
? ? ? ? 随着寒假到来,终于有时间总结下Android这个随手拍的课程作业了,同时分享了我完成的这部分对图像处理的心得吧!你可以结合demo来阅读这篇文章,希望对大家有所帮助. ? ? ? ? ...
- 自定义ProgressBar(包括自定义图片,带进度的圆形进度条、长方形进度条)
转载请注明原博客地址:http://blog.csdn.net/gdutxiaoxu/article/details/51545889 参考博客:http://blog.csdn.net/lmj623 ...
- android进度条随时间走,每天一点Android干货-时间与日期、进度条
timePicker.setIs24HourView(true); //设置是否以24小时制显示 timePicker.getCurrentHour();//获取当前时钟数 timePicker.ge ...
- android canvas_Android仿IOS11 控制中心进度条
这篇文章我们就用简单的自定义View实现类似iOS11的控制中心里边出现的很新颖的进度条. 先看一下目标效果图,以及最后的实现效果: 自定义属性分析 名字 释义 progressMax 最大值 pro ...
- android按钮进度动画,android – 在按钮后面放置一个进度条
要做到这一点,我必须首先在main.xml中定义按钮,然后是进度条,如下所示: android:id="@+id/search_button" android:layout_wid ...
最新文章
- python-opencv 常用工具总结
- 如何使用React.js和Heroku快速实现从想法到URL的转变
- 商务礼仪 细节决定成败
- [Angularjs]ng-show和ng-hide
- break和continue特殊玩法“标签”
- python从入门到实践 第12章 武装飞船 之 调整飞船的速度程序实践
- SQL(二)- 基础查询语句
- 强化学习在美团“猜你喜欢”的实践
- git代码托管 · 操作举例: “git bash here ”(全程操作讲解) - git命令篇
- 安装Nginx必要组件时解决 yum -y install pcre pcre-devel安装出错
- 小米总参php面试题_php面试题之二——Javascript(基础部分)
- checkboxlist详细用法、checkboxlist用法、checkboxlist
- 5.29 狡猾的商人(把后天的写了,老师不会打我吧)
- 高通又失一员大将,英特尔成功挖角高通CFO
- c语言原型,C语言原型模式
- 定义视图函数时,指定具体的监听方法,访问时如果请求的方法没有设置,那么会报方法不允许 --...
- 东软c语言课后习题,C语言笔试题及参考答案-东软集团
- keil的终极配色方案(提供配置文件)
- 个人网站建设基本步骤解析
- debian apache2不执行php,Debian下Apache2的安装与配置