ProgressBar 的使用 —— Android 发现之旅 2011/03/28
这里我是通过一个button 的 click 事件 来控制 ProgressBar 的 进度。
首先我在 main.xml 布局文件中定义好 一些用到的 控件。 具体代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ProgressBar
android:id="@+id/FirstBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:max="200"
android:visibility="gone" />
<ProgressBar
android:id="@+id/SecondBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:max="200"
android:visibility="gone" />
<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Text_btnSubmit" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ProgressBar
android:id="@+id/FirstBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:max="200"
android:visibility="gone" />
<ProgressBar
android:id="@+id/SecondBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:max="200"
android:visibility="gone" />
<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Text_btnSubmit" />
</LinearLayout>
这里面定义了两个 ProgressBar 一个的样式有改变 。 style="?android:attr/progressBarStyleHorizontal", 即把这个 ProgressBar 定义为一个横向的。 稍后再运行结果中会有所体现。 另外一个样式没有任何定义, 它默认是 android 默认的 圆形的。
android:max="200" 给 ProgressBar 赋了最大值。 这个值也可以在 代码中进行赋值: pb1.serMax(200);
android:visibility="gone" 将ProgressBar 的初始状态设置为 gone, 即不可见状态。
然后,在代码中 进行编码。
package com.andorid.ProgressBarDemo;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
import android.os.Bundle;
public class ProgressBarDemo extends Activity {
private ProgressBar pb1 = null;
private ProgressBar pb2 = null;
private Button btnSubmit = null;
private int i = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pb1 = (ProgressBar)findViewById(R.id.FirstBar);
pb2 = (ProgressBar)findViewById(R.id.SecondBar);
btnSubmit = (Button)findViewById(R.id.btnSubmit);
btnSubmit.setOnClickListener(new btnSubmitListener());
}
class btnSubmitListener implements OnClickListener {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(i == 0) {
pb1.setVisibility(View.VISIBLE);
pb2.setVisibility(View.VISIBLE);
}
else if(i < pb1.getMax()) {
pb1.setProgress(i);
pb1.setSecondaryProgress(i + 20);
pb2.setProgress(i);
}
else {
pb1.setVisibility(View.GONE);
pb2.setVisibility(View.GONE);
i = 0;
}
i += 10;
}
}
}
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
import android.os.Bundle;
public class ProgressBarDemo extends Activity {
private ProgressBar pb1 = null;
private ProgressBar pb2 = null;
private Button btnSubmit = null;
private int i = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pb1 = (ProgressBar)findViewById(R.id.FirstBar);
pb2 = (ProgressBar)findViewById(R.id.SecondBar);
btnSubmit = (Button)findViewById(R.id.btnSubmit);
btnSubmit.setOnClickListener(new btnSubmitListener());
}
class btnSubmitListener implements OnClickListener {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(i == 0) {
pb1.setVisibility(View.VISIBLE);
pb2.setVisibility(View.VISIBLE);
}
else if(i < pb1.getMax()) {
pb1.setProgress(i);
pb1.setSecondaryProgress(i + 20);
pb2.setProgress(i);
}
else {
pb1.setVisibility(View.GONE);
pb2.setVisibility(View.GONE);
i = 0;
}
i += 10;
}
}
}
通过对button的 click 事件进行监听 来控制 ProgressBar的进度。
pb1.setProgress(i); 设置 ProgressBar 的值(黄色部分)。
pb1.setSecondaryProgress(i + 20); 设置预加载的 ProgressBar 的值(浅黄色的部分)。
pb1.setSecondaryProgress(i + 20); 设置预加载的 ProgressBar 的值(浅黄色的部分)。
运行的结果为:
点击 Button 就会出现 ProgressBar 如下图:
以上就是我所学的最简单的 ProgressBar 的Demo。 记录与2011-03-28晚。