步步为营_Android开发课[23]_用户界面之ProgressBar(进度条)
Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305
- 主题:用户界面之ProgressBar(进度条)
-
自定义ProgressBar进度条(实例):
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="开启ProgressBar"
/>
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:progress="0"
android:visibility="gone" />
<ProgressBar
android:id="@+id/progressBar2"
android:layout_width="fill_parent"
android:layout_height="10dip"
android:max="100"
android:progress="0"
android:secondaryProgress="0"
style="?android:attr/progressBarStyleHorizontal"
android:progressDrawable="@drawable/progressbar_layer_list"
android:background="@drawable/progressbar_box"
android:visibility="gone"
/>
</LinearLayout>
在res文件下创建drawable文件,再在drawable文件下创建progressbar_layer_list.xml。
progressbar_layer_list.xml:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<clip>
<shape>
<corners android:radius="15dip" />
<gradient android:startColor="#00b7ee" android:endColor="#0075a9" android:angle="270" android:centerY="0.75"/>
</shape>
</clip>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="15dip" />
<gradient android:startColor="#00b7ee" android:endColor="#0075a9" android:angle="270" android:centerY="0.75"/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<gradient android:startColor="#00b7ee" android:endColor="#0075a9" android:angle="270" android:centerY="0.25"/>
<corners android:radius="15dip"/>
</shape>
</clip>
</item>
</layer-list>
progressbar_box图片资源如下:
MainActivity.java源代码:
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
public class MainActivity extends Activity {
private ProgressBar pro1,pro2;
private Button button;
private int count;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.button);
pro1 = (ProgressBar)findViewById(R.id.progressBar1);
pro2 = (ProgressBar)findViewById(R.id.progressBar2);
// 设置进度条是否自动运转,false表是不自动运转
pro1.setIndeterminate(false);
pro2.setIndeterminate(false);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// 设置ProgressBar为可见状态
pro1.setVisibility(View.VISIBLE);
pro2.setVisibility(View.VISIBLE);
// TODO Auto-generated method stub
new Thread(new Runnable(){
public void run() {
for(int i=0; i<10; i++){
try{
count = i*10;
Thread.sleep(1000);
if(count >= 100){
Message msg = new Message();
msg.what = 1;
MainActivity.this.myHandler.sendMessage(msg);
}else{
Message msg = new Message();
msg.what = 2;
MainActivity.this.myHandler.sendMessage(msg);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
}).start();
}
});
}
Handler myHandler = new Handler(){
public void handleMessage(Message msg){
switch(msg.what){
case 1:
Thread.currentThread().interrupt();
break;
case 2:
if (!Thread.currentThread().isInterrupted()) {
// 改变ProgressBar的当前值
pro1.setProgress(count);
pro2.setProgress(count);
// 设置标题栏中前景的一个进度条进度值
//setProgress(count * 100);
// 设置标题栏中后面的一个进度条进度值
//setSecondaryProgress(count * 100);
}
break;
}
super.handleMessage(msg);
}
};
}
运行结果:
Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。