Android 는 색 이 점차 변 하 는 ProgressBar 를 간단하게 구현 하 는 방법
4401 단어 AndroidProgressBar
다음은 이 거 는 효과 도.
그 라 데 이 션 된 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
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.