색상을 변경하는 gmail 앱과 비슷한 진행 표시 줄 (중간 진행률 막대)을 만들고 싶습니다. sdk/platforms에서 progress_indeterminate_horizontal.xml을 유지하고 업데이트하여이 작업을 수행 할 수 있습니다. 애니메이션 (다중 컬러 이미지)을 사용하고 싶지 않습니다. 나는 이것을 사용하여 xml (나는 그라데이션을 사용하고 싶다)을 사용하고 싶다. 어떤 도움을 주시면 감사하겠습니다. 사전다중 색상 진행 표시 줄
답변
여기 내 구현의 : 애니메이션 무지개 그라데이션을 그립니다. 멋지다, 내가 그렇게 말하면 나 자신. 이것은 XML 기반이 아니지만, 만들어 질 수 있고 그라디언트를 사용합니다. 아마도 그것은 당신에게 몇 가지 아이디어를 줄 것입니다.
설정 :
pb = (ProgressBar) findViewById(R.id.progressbar_Horizontal);
GradientDrawable rainbow = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] {Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED});
AnimationDrawable ad = getProgressBarAnimation();
pb.setBackgroundDrawable(ad);
그리고 애니메이션 :
private AnimationDrawable getProgressBarAnimation(){
GradientDrawable rainbow1 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] {Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW});
GradientDrawable rainbow2 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] { Color.YELLOW, Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN});
GradientDrawable rainbow3 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] { Color.GREEN, Color.YELLOW, Color.RED, Color.MAGENTA, Color.BLUE, Color.CYAN });
GradientDrawable rainbow4 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] { Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED, Color.MAGENTA, Color.BLUE });
GradientDrawable rainbow5 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] { Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED, Color.MAGENTA });
GradientDrawable rainbow6 = new GradientDrawable(Orientation.LEFT_RIGHT,
new int[] {Color.MAGENTA, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW, Color.RED });
GradientDrawable[] gds = new GradientDrawable[] {rainbow1, rainbow2, rainbow3, rainbow4, rainbow5, rainbow6};
AnimationDrawable animation = new AnimationDrawable();
for (GradientDrawable gd : gds){
animation.addFrame(gd, 100);
}
animation.setOneShot(false);
return animation;
}
This is what you are looking for.에서
덕분에 프로젝트에서이 라이브러리를 추가하고 당신이 그것을 사용할 수 있습니다.
그런 다음 일반 프로세스 막대로 사용할 수 있습니다. 예 :
private SmoothProgressBar mProgressBar;
에서 OnCreate :
mProgressBar = (SmoothProgressBar) findViewById(R.id.progressbar);
mProgressBar.progressiveStart();
OnPause :
mProgressBar.progressiveStop();
감사를위한 Tushar를 지원하지만 라이브러리를 찾고 있지 않습니다. 접근 방법을 찾고 있습니다. Addin g이 라이브러리는 내가 필요로하는 코드를 무겁게 만들 것입니다. @CommonsWare가 위에서 언급 한 접근법을 사용할 수있었습니다. – CodingRat
저는이 라이브러리를 사용하고 있습니다. 그것은 그렇게 무거운 것이 아닙니다. 그것을 시도하고 직접보십시오. –
이 링크는 질문에 대답 할 수 있지만 답변의 핵심 부분을 여기에 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. – Taifun
이 링크 [포스트]를 읽고 [1] [1] : http://stackoverflow.com/questions/16413633/seekbar-progress-bar-with-multiple-colors – Fortran