显示和设置进度条的进度主要用到了以下几个属性和方法:
android:max 设置进度条的最大值 android:progress 设置第一进度条的当前进度 android:secondaryProgress 设置第二进度条的当前进度
void incrementProgressBy(int diff): 增加第一进度条的进度,diff 是每次增加的量;当diff 为负值的时候为减少;
void incrementSecondaryProgressBy(int diff): 增加第二进度条的进度,方法同上
void setProgress(int progress): 设置第一进度条的进度;
void setSecondaryProgress(int secondaryProgress): 设置第二进度条的进度;
int getProgress(): 获得第一进度条的进度;
int getSecondaryProgress(): 获得第二进度条的进度;
完整示例代码如下:
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
android:secondaryProgress="80" />
<TextView
android:id="@+id/progress_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" />
<Button
android:id="@+id/add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/add" />
<Button
android:id="@+id/reduce"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/reduce" />
<Button
android:id="@+id/reset"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/reset" />
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity implements OnClickListener {
private ProgressBar progressBar;
private Button add;
private Button reduce;
private Button reset;
private TextView progressText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = (ProgressBar)findViewById(R.id.progressBar1);
add = (Button)findViewById(R.id.add);
reduce = (Button)findViewById(R.id.reduce);
reset = (Button)findViewById(R.id.reset);
progressText = (TextView)findViewById(R.id.progress_text);
add.setOnClickListener(this);
reduce.setOnClickListener(this);
reset.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.add:
progressBar.incrementProgressBy(10);
progressBar.incrementSecondaryProgressBy(10);
break;
case R.id.reduce:
progressBar.incrementProgressBy(-10);
progressBar.incrementSecondaryProgressBy(-10);
break;
case R.id.reset:
progressBar.setProgress(50);
progressBar.setSecondaryProgress(80);
break;
}
refreshProgressText();
}
private void refreshProgressText(){
int firstProgress = progressBar.getProgress();
int secondaryProgress = progressBar.getSecondaryProgress();
progressText.setText("First progress: " + firstProgress + "%\n" + "Secondary progress" + secondaryProgress + "%");
}
}
效果如图: