내 응용 프로그램에서 업적에 대한 진행률 표시 줄을 만들려고합니다. 이 진행률 막대는 활동이 열리면 진행 상황을 보여줍니다. 나는 진행 상태 막대에서 목록 상태와 setprogress를 업데이트하는 정규 진행 막대에 익숙하지만 어떻게 든이 작업을 완료 할 수 없었습니다. 아래 코드에서 30/100까지 채우고 진행률 막대가 30 인 것처럼 진행 막대를 만들려고했습니다. 이해를 돕기 위해 간단한 정수로 작업하고 있습니다. 진행률 막대가 진행 상황 업데이트없이 방금 회전하고 있으므로 현재 동작이 가까이 있지 않습니다. 진도는 단순한 정수가 아닌 다른 어떤 구성 요소와도 관련이 없습니다."achievemenet 진행률"막대 만들기
편집 : https://dribbble.com/shots/2758323-Ring-Progress
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_points);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
progressBar.setIndeterminate(false);
new TimedProgress();
}
class TimedProgress {
Timer timer;
public TimedProgress() {
timer = new Timer();
timer.schedule(new ProgressTask(), 0, 500);
}
class ProgressTask extends TimerTask {
int progress = 0;
public void run() {
if (progress <30) {
updateProgress(progress);
progress++;
} else {
timer.cancel();
}
}
}
}
public void updateProgress(final int progress) {
if (null != progressBar) {
progressBar.setVisibility(View.VISIBLE);
progressBar.setProgress((int) progress);
}
}
레이아웃 :
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"/>
아, 맞아. 코드를 이해했지만 어디서 어떻게이 타이머 클래스를 호출하는지 이해하지 못합니까? 보이지 않는 부분을 제외하고 AsyncTask를 그대로 유지합니까? –
오, 알았어. 그래서 당신은 내 코드를 삭제하고이 코드로 대체한다고 말하고있다. 또한 TimedProgress 클래스를 AsyncTask 클래스로 변환하고이를 onCreate에서 호출하여 실행해야합니다. 권리? –
새로운 TimedProgress(); – usajnf