2 개의 표시기가있는 진행 표시 줄을 갖고 싶습니다.2 개의 표시기가있는 진행 표시 줄
하나의 표시기는 작업 A의 진행을 색상 녹색으로 표시하고, 두 번째 표시기는 작업 B의 진행을 빨간색으로 표시하며 모두 한 진행률 표시 줄에 표시합니다. 나머지는 작업 A와 B의 남은 작업을 보여줍니다.
이 작업을 수행하는 간단한 솔루션이 있습니까? 나는 문서를 읽었지만 도움을 찾지 못했습니다.
2 개의 표시기가있는 진행 표시 줄을 갖고 싶습니다.2 개의 표시기가있는 진행 표시 줄
하나의 표시기는 작업 A의 진행을 색상 녹색으로 표시하고, 두 번째 표시기는 작업 B의 진행을 빨간색으로 표시하며 모두 한 진행률 표시 줄에 표시합니다. 나머지는 작업 A와 B의 남은 작업을 보여줍니다.
이 작업을 수행하는 간단한 솔루션이 있습니까? 나는 문서를 읽었지만 도움을 찾지 못했습니다.
두 진행 표시기를 동일한 진행률 표시 줄의 주 진행률 및 보조 진행률로 코딩하면이 작업을 수행 할 수 있습니다.
진행률 표시 줄의 하위 클래스를 만듭니다.
public class TextProgressBar extends ProgressBar {
private Paint textPaint;
public TextProgressBar(Context context) {
super(context);
textPaint = new Paint();
textPaint.setColor(Color.BLACK);
}
public TextProgressBar(Context context, AttributeSet attrs) {
super(context, attrs);
textPaint = new Paint();
textPaint.setColor(Color.BLACK);
setMax(30);
setProgress(12);
setSecondaryProgress(20);
}
}
이 하위 클래스를 사용하여 진행률 표시 줄의 XML 항목을 참조해야합니다.
<com.darsh.doubleProgressBar.TextProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="15sp"
android:layout_marginLeft="1sp"
android:layout_marginRight="1sp"
android:layout_marginTop="10sp"
android:progressDrawable="@drawable/progress" />
이제 기본 및 보조 지표
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
<gradient
android:angle="270"
android:centerColor="#ff5a5d5a"
android:centerY="0.75"
android:endColor="#ff747674"
android:startColor="#ff5a5d5a" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:angle="270"
android:centerColor="#32cd32"
android:centerY="0.75"
android:endColor="#32cd32"
android:startColor="#32cd32" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:angle="270"
android:endColor="#33B5E5"
android:startColor="#33B5E5" />
</shape>
</clip>
</item>
</layer-list>
색상이 당김에서 변경 될 수있는 리소스 디렉토리에 당김을 만들 수 있습니다. 이 같은 코드에서 그
만들기 사용 :
TextProgressBar textProgress;
textProgress = (TextProgressBar)findViewById(R.id.progressBar1);
textProgress.setMax(100);
textProgress.setProgress(10); //
textProgress.setSecondaryProgress(50); //green
사용자 정의 레이아웃을 만들어 두 개의 진행 막대를 그 안에 넣습니다. 그런 다음 핸들러를 가져 와서 진행 막대를 조작해야합니다. 해당 알림의 경우 원격보기로 설정해야합니다.
내가 그나마 당신이 – user1324936
2 간단한 질문을 무슨 뜻인지 이해 :'안드로이드 : ID = "@ 안드로이드 : ID/secondaryProgress"를 ', 그해야' android : id = "@ + id/secondaryProgress"'? 그리고 하위 클래스를 만드는 이유는 무엇입니까? 비공개 필드를 만들지 만 사용하지 마십시오. –
첫 번째 질문을 무시하고 알았습니다 : Android 세트에서 ID를 설정해야 ProgressBar에서 사용할 모양을 알 수 있습니다. –