android 进度条组件ProgressBar
首先是main.xml文件
代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ProgressBar android:id="@+id/myprobarA" style="?android:attr/progressBarStyle" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <ProgressBar android:id="@+id/myprobarB" style="?android:attr/progressBarStyleHorizontal" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <ProgressBar android:id="@+id/myprobarC" style="?android:attr/progressBarStyleHorizontal" android:visibility="gone" android:max="120" android:progress="0" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <ProgressBar android:id="@+id/myprobarD" android:visibility="gone" android:max="120" android:progress="50" android:secondaryProgress="70" style="?android:attr/progressBarStyleLarge" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <ProgressBar android:id="@+id/myprobarE" android:visibility="gone" android:max="120" android:progress="50" android:secondaryProgress="70" style="?android:attr/progressBarStyleSmall" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <Button android:id="@+id/mybut" android:text="显示进度条" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
然后编写Activity.java类
代码如下:
package com.example.myfirstproject; import java.sql.Date; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.app.Activity; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.*; public class MainActivity extends Activity { private ProgressBar myprobarA,myprobarB,myprobarC,myprobarD,myprobarE; private Button mybut; protected static final int STOP = 1; protected static final int CONTINUE = 2; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.myprobarA = (ProgressBar)this.findViewById(R.id.myprobarA); this.myprobarB = (ProgressBar)this.findViewById(R.id.myprobarB); this.myprobarC = (ProgressBar)this.findViewById(R.id.myprobarC); this.myprobarD = (ProgressBar)this.findViewById(R.id.myprobarD); this.myprobarE = (ProgressBar)this.findViewById(R.id.myprobarE); this.mybut = (Button)this.findViewById(R.id.mybut); this.myprobarA.setIndeterminate(false); this.myprobarB.setIndeterminate(false); this.myprobarC.setIndeterminate(true); this.myprobarD.setIndeterminate(false); this.myprobarE.setIndeterminate(false); this.mybut.setOnClickListener(new OnClickListenerlmpl()); } private class OnClickListenerlmpl implements OnClickListener{ public void onClick(View view){ MainActivity.this.myprobarB.setSecondaryProgress(0); MainActivity.this.myprobarA.setVisibility(View.VISIBLE); MainActivity.this.myprobarB.setVisibility(View.VISIBLE); MainActivity.this.myprobarC.setVisibility(View.VISIBLE); MainActivity.this.myprobarD.setVisibility(View.VISIBLE); MainActivity.this.myprobarE.setVisibility(View.VISIBLE); MainActivity.this.myprobarA.setMax(120); MainActivity.this.myprobarB.setMax(120); MainActivity.this.myprobarA.setProgress(0); MainActivity.this.myprobarB.setProgress(0); new Thread(new Runnable(){ public void run(){ int count = 0; for(int i = 0;i < 10;i++){ try{ count = (i+1)*20; Thread.sleep(500); if(i==6){ Message m = new Message(); m.what = MainActivity.STOP; MainActivity.this.myMessageHandler.sendMessage(m); break; }else{ Message m = new Message(); m.arg1 = count; m.what = MainActivity.CONTINUE; MainActivity.this.myMessageHandler.sendMessage(m); } }catch(Exception ex){ ex.printStackTrace(); } } } }).start(); } } private Handler myMessageHandler = new Handler(){ public void handleMessage(Message msg){ switch(msg.what){ case MainActivity.STOP: myprobarA.setVisibility(View.GONE); myprobarB.setVisibility(View.GONE); myprobarC.setVisibility(View.GONE); myprobarD.setVisibility(View.GONE); myprobarE.setVisibility(View.GONE); Thread.currentThread().interrupt(); break; case MainActivity.CONTINUE: if(!Thread.currentThread().isInterrupted()){ myprobarA.setProgress(msg.arg1); myprobarB.setProgress(msg.arg1); myprobarC.setProgress(msg.arg1); myprobarD.setProgress(msg.arg1); myprobarE.setProgress(msg.arg1); } break; } } }; }
运行效果:
以上就是对 Android 进度条的知识整理,后续继续补充相关知识,谢谢大家对本站的支持!
赞 (0)