programing tip

안드로이드에서 원형 ProgressBar를 만드는 방법은 무엇입니까?

itbloger 2020. 6. 10. 22:42
반응형

안드로이드에서 원형 ProgressBar를 만드는 방법은 무엇입니까? [닫은]


Google Fit 애플리케이션과 같은 원형 진행률 표시 줄을 만드는 방법에 대해 알고 있습니까? 아래 이미지와 같습니다.

여기에 이미지 설명을 입력하십시오


Circle Progress 라이브러리를 사용해 볼 수 있습니다

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

NB : 진행률보기에 항상 동일한 너비와 높이를 사용하십시오

도넛

 <com.github.lzyzsd.circleprogress.DonutProgress
        android:id="@+id/donut_progress"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:circle_progress="20"/>

CircleProgress :

  <com.github.lzyzsd.circleprogress.CircleProgress
        android:id="@+id/circle_progress"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:circle_progress="20"/>

ArcProgress :

<com.github.lzyzsd.circleprogress.ArcProgress
        android:id="@+id/arc_progress"
        android:background="#214193"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:arc_progress="55"
        custom:arc_bottom_text="MEMORY"/>

직접 만들 수 있습니다

레이아웃 ProgressBar에서 특정 드로어 블 함께 다음 포함하십시오 ( 대신 치수에서 너비를 가져와야 함 ). 최대 값은 여기서 중요합니다.

<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:max="500"
    android:progress="0"
    android:progressDrawable="@drawable/circular" />

이제 다음 모양으로 리소스에서 드로어 블을 만듭니다. 반경 ( innerRadius대신 사용할 수 있음 innerRadiusRatio) 및 두께 값으로 재생합니다.

원형 (사전 롤리팝 또는 API 레벨 <21)

   <shape
        android:innerRadiusRatio="2.3"
        android:shape="ring"
        android:thickness="3.8sp" >
        <solid android:color="@color/yourColor" />
   </shape>

원형 (> = Lollipop OR API 레벨> = 21)

    <shape
        android:useLevel="true"
        android:innerRadiusRatio="2.3"
        android:shape="ring"
        android:thickness="3.8sp" >
        <solid android:color="@color/yourColor" />
     </shape>

APILevel 21 (Lollipop)에서 useLevel기본적으로 "false" 입니다.

애니메이션 시작

코드에서 다음을 사용 하여 레이아웃 ObjectAnimator의 진행률 필드에 애니메이션을 적용하십시오 ProgessBar.

ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
ObjectAnimator animation = ObjectAnimator.ofInt(progressBar, "progress", 0, 500); // see this max value coming back here, we animate towards that value
animation.setDuration(5000); // in milliseconds
animation.setInterpolator(new DecelerateInterpolator());
animation.start();

애니메이션 중지

progressBar.clearAnimation();

PS 위의 예와 달리 부드러운 애니메이션을 제공합니다.

참고 URL : https://stackoverflow.com/questions/27213381/how-to-create-circular-progressbar-in-android

반응형