development

Android Indeterminate ProgressBar 색상을 변경하는 방법은 무엇입니까?

big-blog 2020. 11. 6. 21:02
반응형

Android Indeterminate ProgressBar 색상을 변경하는 방법은 무엇입니까?


나는 매우 명백한 것을 (다른 언어로 !!) 찾고 있는데 그것은 나를 미치게 만든다!

불확실한 ProgressBar 색상을 기본 흰색 / 회색 색상에서 검은 색으로 변경하는 방법을 알고 싶습니다. indeterminateDrawable을 변경하면 움직이는 애니메이션 progressBar 대신 정적 이미지가 나타납니다. XML로 간단하게 할 수있는 방법이 있습니까?

감사합니다 !


progressBar.getIndeterminateDrawable().setColorFilter(
            getResources().getColor(Your_Color),
            android.graphics.PorterDuff.Mode.SRC_IN);

Your_Color를 R.color.your_color_code와 같은 원하는 색상으로 바꿉니다.


흰색 / 밝은 배경에서 사용할 기본 테마에서 ProgressBar를 가져 오려면 반전 스타일 중 하나를 사용하십시오.

<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>
<ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/>
<ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>

일반적으로 투명한 ProgressBar에 검은 색이 표시되지만 일부 OS 설치에서는 사용자 정의 자산을 사용합니다. 특정 색상을 찾고 있다면 CommonsWare에서 제공하는 지침에 따라 자신의 드로어 블을 굴려야합니다.


다른 답변은 매우 오래되었습니다. 불확정 ProgressBar 색상을 변경하려면 XML에서 직접 항목에 속성 을 설정 android:indeterminateTint하고 android:indeterminateTintMode속성 을 설정 해야합니다 ProgressBar.

<ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminateTint="@color/colorPrimary"
    android:indeterminateTintMode="src_in"
    android:indeterminate="true" />

android:indeterminateTint -미정 진행률 표시기에 적용 할 색조입니다.

형태, 컬러 값이어야 "#rgb", "#argb", "#rrggbb", "#aarrggbb"자원, 또는 참조 @color/colorPrimary.

android:indeterminateTintMode -진행률 표시기 색조를 적용하는 데 사용되는 혼합 모드.

다음 상수 값 중 하나 여야합니다 :
add, multiply, screen, src_atop, src_in또는src_over

이러한 속성에 대한 Getter 및 Setter 메서드는 다음과 같습니다.

모두 API 레벨 21에 추가되었습니다.


샘플 프로젝트를 만들고 블로그에 게시합니다. 제발보세요. http://www.hrupin.com/2011/09/21/how-to-make-custom-indeterminate-progressbar-in-android-or-how-to-change-progressbar-style-or-color

희망, 그것은 당신을 도와줍니다


<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background" android:drawable="@drawable/bg" />
    <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/secondary" />
    <item android:id="@android:id/progress" android:drawable="@drawable/progress" />
</layer-list>

23 미만의 API 사용

progressBar.getIndeterminateDrawable().setColorFilter(
       getResources().getColor(Your_Color),
        android.graphics.PorterDuff.Mode.SRC_IN);

그렇지 않으면 사용

progressBar.getIndeterminateDrawable().setColorFilter(
        ContextCompat.getColor(context, Your_Color),
        android.graphics.PorterDuff.Mode.SRC_IN);

android:colorControlActivatedstyles.xml에 있어야하는 AppTheme에서 재정의 하십시오.

<style name="AppTheme" parent="...">
    ...
    <item name="android:colorControlActivated">@color/beautiful_color</item>
    ...
</style>

API 21 이상에서 작동


실제로해야 할 일은 아래 그림과 같이 드로어 블에 xml 파일을 만드는 것입니다. progress_spinner_001은 애니메이션을 적용하려는 이미지와 기간을 가리 킵니다. 프레임 .... 및 ur android : indeterminateDrawable = filename_in_drawable .... 설정

<?xml version="1.0" encoding="utf-8"?>
<animation-list
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
<item android:drawable="@drawable/progress_spinner_001" android:duration="300" />
<item android:drawable="@drawable/progress_spinner_002" android:duration="300" />
<item android:drawable="@drawable/progress_spinner_003" android:duration="300" />
  <item android:drawable="@drawable/progress_spinner_004" android:duration="300" />
    <item android:drawable="@drawable/progress_spinner_005" android:duration="300" />
      <item android:drawable="@drawable/progress_spinner_006" android:duration="300" />
     <item android:drawable="@drawable/progress_spinner_007" android:duration="300" />
    <item android:drawable="@drawable/progress_spinner_008" android:duration="300" />
</animation-list>

추신 원하는대로 표시하려면 진행률 표시 줄의 크기를 조정해야 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/2638161/how-to-change-android-indeterminate-progressbar-color

반응형

'development' 카테고리의 다른 글

문자열을 돈으로 포맷하는 방법  (0) 2020.11.06
!  (0) 2020.11.06
라텍스-몇 페이지의 여백 변경  (0) 2020.11.06
정수를 나누고 정수 값 얻기  (0) 2020.11.06
CSS로만 DIV 위치 바꾸기  (0) 2020.11.06