반응형
안드로이드에서 원형 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
반응형
'programing tip' 카테고리의 다른 글
PS 명령의 전체 출력보기 (0) | 2020.06.10 |
---|---|
UNIX 소켓 파일에 대한 mysqld_safe 디렉토리 '/ var / run / mysqld'가 존재하지 않습니다. (0) | 2020.06.10 |
MySQL : 테이블을 만들 수 없음 (errno : 150) (0) | 2020.06.10 |
실행 : stdout“live”표시 (0) | 2020.06.10 |
오류 1045 (28000) : 사용자 'root'@ 'localhost'에 대한 액세스가 거부되었습니다 (암호 사용 : 예). (0) | 2020.06.10 |