canvas教程

Java开发 程序员之家论坛

字号+ 作者:H5之家 来源:H5之家 2015-11-11 14:58 我要评论( )

Android自定义圆环进度条 ,程序员之家论坛

  • package com.example.carlos.myapplication;
  • import android.content.Context;
  • import android.graphics.Canvas;
  • import android.graphics.Color;
  • import android.graphics.Paint;
  • import android.graphics.Rect;
  • import android.graphics.RectF;
  • import android.util.AttributeSet;
  • import android.view.View;
  • /**
  • * Created by carlos on 2015/10/24.
  • */
  • public class CustomView extends View {
  • private Paint mPaintBackCircle;
  • private Paint mPaintFrontCircle;
  • private Paint mPaintText;
  • private float mStrokeWith =50;
  • private float mHalfStrokeWith = mStrokeWith/2;
  • private float mX = 200 + mHalfStrokeWith;
  • private float mY = 200 + mHalfStrokeWith;
  • private float mRadius = 200;
  • private RectF mRectF;
  • private int mProgess;
  • public CustomView(Context context) {
  • super(context);
  • init();
  • }
  • public CustomView(Context context, AttributeSet attrs) {
  • super(context, attrs);
  • init();
  • }
  • public CustomView(Context context, AttributeSet attrs, int defStyleAttr) {
  • super(context, attrs, defStyleAttr);
  • init();
  • }
  • private void init(){
  • mPaintBackCircle = new Paint();
  • mPaintBackCircle.setColor(Color.BLUE);
  • mPaintBackCircle.setAntiAlias(true);
  • mPaintBackCircle.setStyle(Paint.Style.STROKE);
  • mPaintBackCircle.setStrokeWidth(mStrokeWith);
  • mPaintFrontCircle = new Paint();
  • mPaintFrontCircle.setColor(Color.YELLOW);
  • mPaintFrontCircle.setAntiAlias(true);
  • mPaintFrontCircle.setStyle(Paint.Style.STROKE);
  • mPaintFrontCircle.setStrokeWidth(mStrokeWith);
  • mPaintText = new Paint();
  • mPaintText.setColor(Color.RED);
  • mPaintText.setAntiAlias(true);
  • mPaintText.setTextSize(50);
  • mPaintText.setTextAlign(Paint.Align.CENTER);
  • mRectF = new RectF(mHalfStrokeWith,mHalfStrokeWith,mRadius*2 + mHalfStrokeWith,mRadius*2 + mHalfStrokeWith);
  • mProgess =75;
  • }
  • @Override
  • protected void onDraw(Canvas canvas) {
  • super.onDraw(canvas);
  • canvas.drawCircle(mX, mY, mRadius, mPaintBackCircle);
  • canvas.drawArc(mRectF,0,270,false,mPaintFrontCircle);
  • canvas.drawText(mProgess+"%",mX,mY,mPaintText);
  • }
  • }

    复制代码

     

  • 1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    网友点评