답변:
res / drawable 폴더에 다음을 입력하십시오.
progress.xml
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="360">
<shape
android:shape="ring"
android:innerRadiusRatio="3"
android:thicknessRatio="8"
android:useLevel="false">
<size
android:width="76dip"
android:height="76dip" />
<gradient
android:type="sweep"
android:useLevel="false"
android:startColor="#447a29"
android:endColor="#00ffffff"
android:angle="0"/>
</shape>
</rotate>
설정 startColor
및 endColor
선택에 따라.
이제 설정이 progress.xml
에서 ProgressBar
의 backgound입니다.
<ProgressBar
android:id="@+id/ProgressBar01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateDrawable="@drawable/progress"
/>
API 21 이상 indeterminateTint 속성을 설정하기 만하면됩니다. 처럼:
android:indeterminateTint="@android:color/holo_orange_dark"
API 21 이전 장치를 지원하려면 다음을 수행하십시오.
mProgressSpin.getIndeterminateDrawable()
.setColorFilter(ContextCompat.getColor(this, R.color.colorPrimary), PorterDuff.Mode.SRC_IN );
style="?android:attr/progressBarStyle"
하지 작동합니까
1. 먼저 리소스 아래의 drawable 폴더에 xml 파일을 만듭니다.
이름이 "progress.xml"
<?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="360" >
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="8"
android:useLevel="false" >
<size
android:height="76dip"
android:width="76dip" />
<gradient
android:angle="0"
android:endColor="color/pink"
android:startColor="@android:color/transparent"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
2. 다음 폴링 스 니펫을 사용하여 진행률 표시 줄 만들기
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/relativeLayout1"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:indeterminate="true"
android:indeterminateDrawable="@drawable/progress" />
이 코드를 사용하여 프로그래밍 방식으로 색상을 변경할 수 있습니다.
ProgressBar v = (ProgressBar) findViewById(R.id.progress);
v.getIndeterminateDrawable().setColorFilter(0xFFcc0000,
android.graphics.PorterDuff.Mode.MULTIPLY);
ProgressDialog의 진행률 표시 줄 색상을 변경하려면 다음을 사용할 수 있습니다.
mDilog.setOnShowListener(new OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
ProgressBar v = (ProgressBar)mDilog.findViewById(android.R.id.progress);
v.getIndeterminateDrawable().setColorFilter(0xFFcc0000,
android.graphics.PorterDuff.Mode.MULTIPLY);
}
});
Dato의 답변에 추가하기 위해 SRC_ATOP이 알파 채널을 더 잘 지원하므로 곱하기에 선호되는 필터라고 생각합니다.
ProgressBar v = (ProgressBar) findViewById(R.id.progress);
v.getIndeterminateDrawable().setColorFilter(0xFFcc0000, android.graphics.PorterDuff.Mode.SRC_ATOP);
android : indeterminateTint = "@ color / progressbar"
styles.xml
<style name="CircularProgress" parent="Theme.AppCompat.Light">
<item name="colorAccent">@color/yellow</item>
</style>
<ProgressBar
android:layout_width="@dimen/d_40"
android:layout_height="@dimen/d_40"
android:indeterminate="true"
style="@style/Widget.AppCompat.ProgressBar"
android:theme="@style/CircularProgress"/>
원형 ProgressBar를 사용자 정의하려면 undeterminateDrawable 을 작성하여 사용자 정의 진행 막대를 표시 해야 합니다.
<?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:duration="1">
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="8"
android:useLevel="false">
<size
android:height="48dip"
android:width="48dip" />
<gradient
android:centerColor="#f96047"
android:centerY="0.50"
android:endColor="#fb9c8d"
android:startColor="#f72d0c"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
다음과 같이 진행 표시 줄에 드로어 블을 포함해야합니다.
<ProgressBar
android:layout_width="wrap_content"
android:layout_centerInParent="true"
style="?android:attr/progressBarStyleLarge"
android:visibility="visible"
android:progressDrawable="@drawable/widget_progressbar"
android:indeterminateDrawable="@drawable/widget_progressbar"
android:layout_height="wrap_content" />
rotate
전에 태그가 누락되었습니다 shape
. 그것 없이는 진행률 표시 줄이 정체됩니다
나를 위해 테마는 accentColor와 함께 작동하지 않았습니다. 그러나 colorControlActivated와 함께 작동했습니다.
<style name="Progressbar.White" parent="AppTheme">
<item name="colorControlActivated">@color/white</item>
</style>
<ProgressBar
android:layout_width="@dimen/d_40"
android:layout_height="@dimen/d_40"
android:indeterminate="true"
android:theme="@style/Progressbar.White"/>
Muhamed Riyas M의 최고 투표 답변 을 보충하려면 :
빠른 회전
android:toDegrees="1080"
더 얇은 링
android:thicknessRatio="16"
라이트 화이트
android:endColor="#80ffffff"
이 답변 을 확인하십시오 .
나를 위해이 두 줄은 작동하고 색상을 변경하기 위해 있어야했습니다.
android:indeterminateTint="@color/yourColor"
android:indeterminateTintMode="src_in"
추신 :하지만 안드로이드 21에서만 사용할 수 있습니다
스타일을 사용 해보고 colorControlActivated 너무 원하는 ProgressBar 색상을 설정하십시오.
<style name="progressColor" parent="Widget.AppCompat.ProgressBar">
<item name="colorControlActivated">@color/COLOR</item>
</style>
그런 다음 ProgressBar 테마를 새 스타일로 설정하십시오.
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/progressColor"
/>
활동 테마에 항목 colorControlActivated를 추가하십시오 ( 예 :
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="colorControlActivated">@color/rocket_black</item>
...
</style>
매니페스트의 활동에이 스타일을 적용하십시오.
<activity
android:name=".packege.YourActivity"
android:theme="@style/AppTheme.NoActionBar"/>
다른 답변의 xml을 재사용하여 사용자 정의 대화 상자를 사용 하여이 작업을 쉽게 수행 할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="8"
android:useLevel="false" >
<size
android:height="76dip"
android:width="76dip" />
<gradient
android:angle="0"
android:endColor="@color/oceanBlue"
android:startColor="@android:color/transparent"
android:type="sweep"
android:useLevel="false" />
</shape>
그냥 이렇게 :
public static class ModifiedProgressDialog extends ProgressDialog {
public ModifiedProgressDialog(Context context) {
super(context);
}
@Override
public void show() {
super.show();
setIndeterminateDrawable(getContext().getResources().getDrawable(R.drawable.blue_progress));
}
}
아래와 같이 진행 색상을 변경하는 스타일을 사용할 수 있습니다
<style name="AppTheme.anyName">
<item name="colorAccent">YOUR_COLOR</item>
</style>
아래와 같이 ProgressBar에서 사용하십시오.
<ProgressBar
style="?android:attr/progressBarStyle"
android:theme="@style/AppTheme.WhiteAccent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen_30"
/>
도움이 되길 바랍니다.
사용자 정의 진행 속도를 높이는 방법을 궁금해하는 모든 사람들에게
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
android:toDegrees="1080"><!--HERE YOU COULD INCREASE SPEED BY SETTING TODEGRESS(1080 is 3 loops instead of 1 in same amt of time)-->
<shape android:shape="ring" android:innerRadiusRatio="3"
android:thicknessRatio="8" android:useLevel="false">
<size android:width="76dip" android:height="76dip" />
<gradient android:type="sweep" android:useLevel="false"
android:startColor="#447a29"
android:endColor="#447a29"
android:angle="0"
/>
</shape>
세트 android:indeterminateDrawable="@drawable/progress_custom_rotate"
사용자 정의 원형 링 진행률 표시 줄에 아래 코드 사용
아래 코드를 복사하여 Drawable 폴더에 "progress_custom_rotate.xml"을 만듭니다.
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
android:toDegrees="1080">
<shape android:shape="ring" android:innerRadiusRatio="3"
android:thicknessRatio="8" android:useLevel="false">
<size android:width="48dip" android:height="48dip" />
<gradient android:type="sweep" android:useLevel="false"
android:startColor="#4c737373" android:centerColor="#4c737373"
android:centerY="0.50" android:endColor="#ffffd300" />
</shape>
</rotate>
<style name="progressColor" parent="Widget.AppCompat.ProgressBar">
<item name="colorControlActivated">@color/colorPrimary</item>
</style>
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="250dp"
android:theme="@style/progressColor"
android:layout_height="250dp"
android:layout_centerInParent="true" />