Android 具有用户级别的自定义Progressbar

Android 具有用户级别的自定义Progressbar,android,progress-bar,android-progressbar,Android,Progress Bar,Android Progressbar,我想创建自定义progressbar,具有不同的级别,如下图所示 xml代码 <ProgressBar android:id="@+id/progress" style="?android:attr/progressBarStyleLarge" android:layout_width="300dp" android:layout_height="300dp" android:layout_centerHorizontal="true"

我想创建自定义progressbar,具有不同的级别,如下图所示

xml代码

 <ProgressBar
    android:id="@+id/progress"
    style="?android:attr/progressBarStyleLarge"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="20dp"
    android:indeterminate="true"
    android:indeterminateDrawable="@drawable/progress"  />

progrss.xml

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" >

<shape
    android:innerRadiusRatio="3"
    android:shape="ring"
    android:thicknessRatio="10"
    android:useLevel="false" >

    <size
        android:height="76dip"
        android:width="76dip" />

    <gradient
        android:angle="0"
        android:endColor="#99cc33"
        android:startColor="#F15d36"
        android:type="sweep"
        android:useLevel="false" />

</shape>

</rotate>

您可以根据需要使用自定义进度条

循环压缩视图


您需要一个自定义布局-

class CircleLayout extends FrameLayout{
...
  void onDraw(Canvas canvas){
  .... 
  }
}
现在在onDraw()方法中,画一个半径等于最小值(高度、宽度)一半的圆--
高度和宽度分别是框架布局的高度和宽度
int min=min(高度,宽度)

radius = min/2
x和y是中心点

canvas.drawCircle(x, y, radius, paint);
现在使用相同的半径绘制两条弧,即绿色弧和红色弧

要绘制圆弧,请参见此链接-

您可以使用自定义视图并使用onDraw方法绘制圆。您可以给我一个小示例,例如如何在圆部分填充颜色吗?红色和绿色的圆弧表示开始阶段,绿色表示结束阶段。您可以告诉我如何将progressbar的圆拆分为5块吗?您可以用饼图如果你想分成5部分,我使用了下面的库来实现饼图,你能举个例子吗?