最近因为项目的需要这样的效果纠结了很久网上各种找也没找到效果差不多,索性就自己自定义了一个,分享一下。
很多人可能用过ProgressWheel这个第三方的progressbar但是它的尾部没有圆圈,那就按照它来改写吧:先讲下我的思路,我花了四个圆圈,同一个圆心这样的话只要半径不同就可以勾勒出不同的区域显示不同的颜色,最后的那个bar的颜色就直接按照弧度来划,下面上代码。
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.text.Html;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
/**
* Created by Administrator on 2016/6/7.
*/
public class MyProgressBar extends View {
//Sizes (with defaults)
private int layoutHeight = 0;
private int layoutWidth = 0;
//Padding (with defaults)
private int paddingTop = 5;
private int paddingBottom = 5;
private int paddingLeft = 5;
private int paddingRight = 5;
private String[] splitText = {
"测试"};
private RectF one_rectf = new RectF();
private RectF two_rectf = new RectF();
private RectF three_rectf = new RectF();
private RectF four_rectf = new RectF();
private RectF bar_rectf = new RectF();
private int bar_color = 0xFFFEA049;
private int rim_color = 0xFFD9D9D9;
private int three_color = 0xFFFFDBB9;
private int four_color = 0xFFFEA049;
//Paints
private Paint barPaint = new Paint();
private Paint onePaint = new Paint();
private Paint twoPaint =