在 Android 中创建静态进度条
Create Static Progress Bar in Android
静态的意思是,我有一些数据说20,其最大值可以是100。我想将其命名为Progress。然后我需要一个 activity ,当我们打开 Progress 选项卡时将调用它。它加载进度并在达到 20(满分 100)时停止。
最终应该是这样的。
Progress.
++++----------------
Progress1.
+++++++++++---------
Progress3.
+++++++-------------
我用谷歌搜索并得到了这个 gif,完全 说明了我的要求。 GIF
我尝试过并能实现的是:
activity
public class test extends Activity {
private ProgressBar progressBar;
private int progressStatus = 0, CurrValue=20;
private TextView textView;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loop);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
textView = (TextView) findViewById(R.id.textView1);
progressBar.setScaleY(3f);
// Start long running operation in a background thread
Progress();
}
public void Progress(){
new Thread(new Runnable() {
public void run() {
while (progressStatus < CurrValue) {
progressStatus += 1;
// Update the progress bar and display the
//current value in the text view
handler.post(new Runnable() {
public void run() {
progressBar.setProgress(progressStatus);
textView.setText(progressStatus+"/"+progressBar.getMax());
}
});
try {
// Sleep for 200 milliseconds.
//Just to display the progress slowly
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
}
布局
它有一个 TextView 和一个 ProgressBar
我想用动画显示多个进度条,就像上面的 GIF link 一样。
这是一个想法:
- 创建 ProgressUpdater class。它在其构造函数中采用 ProgressBar、用于监视进度的变量和最大值(假设 0 是最小值,如果不是 0 到最大值,则为最小值)。
- 它有一个 UpdateProgress() 方法,您可以调用它来检查变量并计算 progress/update ProgressBar。
- 您的 Activity 包含一个 ProgressUpdater 数组,它在 onCreate 中用每个 ProgressBar 初始化。
- Progress() 然后遍历 ProgressUpdater 数组并在每个更新器上调用 UpdateProgress()。您需要对 Progress() 进行一些更改以处理多个值,或者使用一些 Listener 并让它调用适当的 ProgressUpdater 的 UpdateProgress() 方法。
听起来怎么样?
静态的意思是,我有一些数据说20,其最大值可以是100。我想将其命名为Progress。然后我需要一个 activity ,当我们打开 Progress 选项卡时将调用它。它加载进度并在达到 20(满分 100)时停止。
最终应该是这样的。
Progress.
++++----------------
Progress1.
+++++++++++---------
Progress3.
+++++++-------------
我用谷歌搜索并得到了这个 gif,完全 说明了我的要求。 GIF
我尝试过并能实现的是:
activity
public class test extends Activity {
private ProgressBar progressBar;
private int progressStatus = 0, CurrValue=20;
private TextView textView;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loop);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
textView = (TextView) findViewById(R.id.textView1);
progressBar.setScaleY(3f);
// Start long running operation in a background thread
Progress();
}
public void Progress(){
new Thread(new Runnable() {
public void run() {
while (progressStatus < CurrValue) {
progressStatus += 1;
// Update the progress bar and display the
//current value in the text view
handler.post(new Runnable() {
public void run() {
progressBar.setProgress(progressStatus);
textView.setText(progressStatus+"/"+progressBar.getMax());
}
});
try {
// Sleep for 200 milliseconds.
//Just to display the progress slowly
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
}
布局
它有一个 TextView 和一个 ProgressBar
我想用动画显示多个进度条,就像上面的 GIF link 一样。
这是一个想法:
- 创建 ProgressUpdater class。它在其构造函数中采用 ProgressBar、用于监视进度的变量和最大值(假设 0 是最小值,如果不是 0 到最大值,则为最小值)。
- 它有一个 UpdateProgress() 方法,您可以调用它来检查变量并计算 progress/update ProgressBar。
- 您的 Activity 包含一个 ProgressUpdater 数组,它在 onCreate 中用每个 ProgressBar 初始化。
- Progress() 然后遍历 ProgressUpdater 数组并在每个更新器上调用 UpdateProgress()。您需要对 Progress() 进行一些更改以处理多个值,或者使用一些 Listener 并让它调用适当的 ProgressUpdater 的 UpdateProgress() 方法。
听起来怎么样?