Android 는 색 이 점차 변 하 는 ProgressBar 를 간단하게 구현 하 는 방법

4401 단어 AndroidProgressBar
오늘 은 튜 토리 얼 을 보고 색깔 이 점점 변 하 는 ProgressBar 를 보 니 재 미 있 는 것 같 아서 기록 합 니 다.
다음은 이 거 는 효과 도.

그 라 데 이 션 된 ProgressBar 색상
효과 도 를 보면 사람들 에 게 고급 기술 을 사용 한 느낌 을 줄 수 있 습 니 다.사실은 이것 은 그렇게 깊 지 않 습 니 다.우 리 는 ProgressBar 의 스타일 을 간단하게 바 꾸 면 실현 할 수 있 습 니 다.다음은 실현 방식 을 말씀 드 리 겠 습 니 다.
우선 간단하게 분석 해 보 자.
1.위의 스타일 은 색상 그 라 데 이 션 만 실 현 했 을 뿐 회전 과 표현 방식 은 여전히 원형 ProgressBar 입 니 다.
2.이 ProgressBar 는 색 의 점차 적 인 변 화 를 실 현 했 기 때문에 우 리 는 gradient 를 사용 해 야 한다.이것 도 비교적 간단 하 다.우리 가 설정 을 시작 하면 중간 에 색 을 끝내 면 색 이 실 현 될 수 있다.
알 겠 습 니 다.
우선,우 리 는 위의 레이아웃,배경 회색,ProgressBar 가운데,TextView 는 ProgressBar 아래 에 있 습 니 다.
코드 는 다음 과 같 습 니 다:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="cn.codekong.androidloading.MainActivity">
  <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#de262a3b">
    <ProgressBar
      android:id="@+id/loading"
      android:layout_width="60dp"
      android:layout_height="60dp"
      android:layout_centerInParent="true"
      android:indeterminate="false"/>
    <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_below="@id/loading"
      android:text="   "
      android:textColor="#ffffff"
      android:textSize="20sp"
      android:layout_centerHorizontal="true"/>
  </RelativeLayout>
</RelativeLayout>
위의 다른 코드 들 은 모두 이해 하기 쉽 습 니 다.ProgressBar 에 만 indeterminate 띠 가 있 습 니 다.설명 이 필요 합 니 다.
일반적인 ProgressBar 는 로 딩 진 도 를 표시 하 는 데 사 용 됩 니 다.만약 에 우리 가 현재 의 구체 적 인 진도 까지 간다 면 이 속성 은 true 로 설정 하고 정확 한 진 도 를 설정 해 야 합 니 다.만약 에 우리 도 정확 한 진 도 를 모 르 면 false 로 설정 합 니 다.
레이아웃 이 설정 되 었 습 니 다.다음 단 계 는 ProgressBar 의 그 라 데 이 션 스타일 을 설정 하 는 것 입 니 다.Drawable 을 사용자 정의 해 야 합 니 다.
사용자 정의 Drawable 코드 는 다음 과 같 습 니 다.

<?xml version="1.0" encoding="utf-8"?>
<rotate
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:fromDegrees="0"
  android:pivotX="50%"
  android:pivotY="50%"
  android:toDegrees="1080.0">
  <shape android:innerRadiusRatio="3"
      android:shape="ring"
      android:thicknessRatio="10"
      android:useLevel="false">
    <gradient android:centerColor="#FFDC35"
         android:centerY="0.50"
         android:endColor="#CE0000"
         android:startColor="#FFFFFF"
         android:type="sweep"/>
  </shape>
</rotate>
아래 에 위의 코드 를 설명 하 겠 습 니 다.
바깥쪽 의 rotate 는 이것 이 회전 하 는 애니메이션 임 을 나타 내 고 시작 각도 와 끝 각 도 를 규정 하 며 회전 중심 을 원심 으로 한다.
내부 의 shape 는 하나의 링(ring)으로 정 의 했 는데 그 중에서 세 가지 속성 이 있 습 니 다.
<1>innerRadiusRatio 는 외환 반경 과 내경 의 비례 값 이다.예 를 들 어 외환 반경 은 30 이 고 내환 반경 은 10 이면 비례 값 은 3 이다.
<2>thicknessratio 는 외 환 반경 과 환 의 두께 의 비례 값
<3>useLevel 이 true 라면 Level ListDrawable 에서 사용 할 수 있 습 니 다.
다음 gradient 는 그 라 데 이 션 효 과 를 정의 하고 시작 하 는 색상 을 규정 하 며 그 라 데 이 션 방식 을 스 캔 그 라 데 이 션 으로 규정 합 니 다.
마지막 으로,우 리 는 ProgressBar 의 속성 을 통 해 위 에서 정의 한 스타일 을 설정 합 니 다.

android:indeterminateDrawable="@drawable/loading_drawable"
위의 절 차 를 거 쳐 우 리 는 간단 한 점진 적 인 Progress Bar 를 실현 했다.매우 간단 하지 않 고 필요 한 사람 을 도 울 수 있 기 를 바란다.
원본 주소:https://github.com/codekongs/Android-Learning/tree/master/AndroidLoading
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기