移动开发-----自定义View(圆环)
来源:互联网 发布:卡哇伊字体软件 编辑:程序博客网 时间:2024/06/08 07:50
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.View;public class CircleView extends View { private Paint mPaint; private Paint mPaintBg; private RectF mRectF; private int mEndAngle = 120; private String mPaintColor = "#FFFFFF"; public CircleView(Context context) { super(context); initData(); } public CircleView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); initData(); } public CircleView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initData(); } private void initData() { mPaint = new Paint(); mPaint.setStrokeWidth(100); mPaint.setColor(Color.parseColor(mPaintColor)); mPaint.setAntiAlias(true); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeCap(Paint.Cap.BUTT); mRectF = new RectF(); mPaintBg = new Paint(); mPaintBg.setStrokeWidth(100); mPaintBg.setColor(Color.parseColor("#36FFFFFF")); mPaintBg.setAntiAlias(true); mPaintBg.setStyle(Paint.Style.STROKE); mPaintBg.setStrokeCap(Paint.Cap.BUTT); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); int minSize = Math.min(getMeasuredWidth() - getPaddingLeft() - getPaddingRight(), getMeasuredHeight() - getPaddingTop() - getPaddingBottom()); int roat = minSize / 2; int CenterPointX = getMeasuredWidth() / 2; int CenterPointY = getMeasuredHeight() / 2; mRectF.left = CenterPointX - roat + (int)mPaint.getStrokeWidth()/2; mRectF.top = CenterPointY - roat + (int)mPaint.getStrokeWidth()/2; mRectF.right = CenterPointX + roat - (int)mPaint.getStrokeWidth()/2; mRectF.bottom = CenterPointY + roat - (int)mPaint.getStrokeWidth()/2; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawArc(mRectF,-90,mEndAngle,false,mPaint); canvas.drawArc(mRectF,0,360,false,mPaintBg); //增加锯齿 for (int i = 0; i < 90 ; i++) { canvas.drawArc(mRectF,i * 4 ,2,false,mPaintBg); } } public void setEndAngle(int endAngle){ this.mEndAngle = endAngle; invalidate(); } public void setPaintColor(String paintColor){ this.mPaintColor = paintColor; mPaint.setColor(Color.parseColor(this.mPaintColor)); invalidate(); }}
效果图:
阅读全文
0 0
- 移动开发-----自定义View(圆环)
- Android开发,自定义View(三)-----圆环交替 等待效果
- Android自定义View数字圆环(一)
- Android自定义View数字圆环(二)
- 圆环百分比自定义View
- 自定义view-圆环
- 自定义View圆环
- 自定义View圆环进度条
- 自定义view圆环进度条
- 自定义View圆环
- 自定义view圆环
- 自定义view圆环进度条
- 自定义view之自定义圆环
- 自定义View画圆环(嵌套圆环)
- 自定义view (三) 用view圆环进度条
- 自定义view(1)---自定义圆环,仿qq健康进度条
- Android自定义View --- 绘制圆环
- 自定义View之绘制圆环
- 编译Hi3516a osdrv目录
- 机器人进阶学习(一)---基于stm32的底层搭建,与上位机通讯及base_control编写
- CSS设置图片转向
- 机器学习之支持向量机SVM Support Vector Machine (六) 高斯核调参
- 解决JSONObject.fromObject数字为null时被转换为0
- 移动开发-----自定义View(圆环)
- HTML 中引入调用另一个 HTML 的方法
- 像Apache Storm一样简单的分布式图计算
- 中文乱码
- 关于centos 7 中service iptables save 指令使用失败的结局方案
- FastDFS相关问题
- Window多线程同步之(互斥锁)
- oracle-高级查询
- C语言面试题---指针(四)