表盘绘制
来源:互联网 发布:网络部组织架构图 编辑:程序博客网 时间:2024/04/25 07:28
表盘绘制主要是用到了pathEffect和shader
public class TestCircleView extends View { private Paint mPaint; private Paint mNormalPaint; private Shader mShader; public TestCircleView(Context context) { super(context); init(context); } public TestCircleView(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public TestCircleView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context); } private void init(Context context) { mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setStrokeWidth(20); mPaint.setStyle(Paint.Style.STROKE); PathEffect effect = new DashPathEffect(new float[] {5, 8, 5, 8}, 1); mPaint.setPathEffect(effect); mNormalPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mNormalPaint.setStrokeWidth(20); mNormalPaint.setStyle(Paint.Style.STROKE); mNormalPaint.setPathEffect(effect); mShader = new SweepGradient(400, 300, new int[] {0xFF09F68C, 0xFFB0F44B, 0xFFE8DD30, 0xFFF1CA2E, 0xFFFF902F, 0xFFFF6433}, null); mPaint.setShader(mShader); } @Override protected void onDraw(Canvas canvas) { Path path = new Path(); path.rewind(); path.addCircle(400, 300, 200, Path.Direction.CW); canvas.clipPath(path, Region.Op.UNION); canvas.drawCircle(400, 300, 200, mNormalPaint); RectF rectF = new RectF(200, 100, 600, 500); canvas.drawArc(rectF, -90, mSweepAngle, false, mPaint); //canvas.drawCircle(400, 300, 200, mPaint); } private float mSweepAngle = 0; public void test() { ValueAnimator animator = ObjectAnimator.ofFloat(0f, 1f); animator.setDuration(3000); animator.setInterpolator(new LinearInterpolator()); animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { float value = (float) valueAnimator.getAnimatedValue(); mSweepAngle = 360f * value; postInvalidate(); } }); animator.start(); }}
0 0
- 表盘绘制
- 使用Canvas绘制圆形表盘
- 绘制模拟Android钟 ####时钟表盘
- 绘图(三,进阶之绘制表盘)
- 自定义时钟View,表盘的绘制
- canvas 二 canvas绘制表盘,及canvas曲线的绘制
- Canvas的初识——模拟表盘数字绘制
- android studio 绘制时钟刻度表盘的虚拟动画。
- 利用canvas.save()、canvas.restore()、canvas.translate()、canvas.rotate()绘制一个时钟表盘
- 自定义表盘
- 自定义表盘
- Android 绘图基础:Canvas画布——自定义View基础(绘制表盘、矩形、圆形、弧、渐变)
- Android 绘图基础:Canvas画布——自定义View基础(绘制表盘、矩形、圆形、弧、渐变)
- svg表盘实例
- svg 表盘实例
- QML之表盘
- 时钟表盘代码
- 时钟表盘代码
- HDOJ2072(单词数)(strtok函数分解字符串)
- 编译60个小程序之makefile
- 如何将基于对话框的工程改成基于BCG的
- 深入理解java的接口和抽象类
- USACO-Section 2.4 Cow Tours(最短路[Floyd])
- 表盘绘制
- y值 高度不跟随导航条变化
- volley的特点
- 阿里RDS备份恢复
- java回顾之基于servlet的网页聊天室实现
- UVA1614 - Hell on the Markets
- 文章标题
- CentOS上利用Git和Maven自动化部署Java Web
- 炫丽的朋友圈视频滚动播放功能