私は自分のアプリケーションで成果の進捗バーを作成しようとしています。これらの進行状況バーは、アクティビティが開かれると進行状況を示すはずです。私はプログレスバーのリストのステータスとsetprogressを更新する通常のプログレスバーに精通していますが、何とかこのタスクを完了することができませんでした。下のコードでは、「達成進捗状況」が30だったかのように、30/100までのプログレスバーを作成して停止しました。わかりやすくするために、私は単純な整数で作業しています。プログレスバーが進捗状況の更新なしで回転しているだけなので、現在の動作は近いものではありません。進捗状況は、単純整数以外の他のコンポーネントには関係しないことに注意してください。"achievemenet progress"バーを作成する
編集:これは私が欲しいの動作です: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