2.常用控制元件:ProgressBar
阿新 • • 發佈:2019-02-04
常用控制元件:ProgressBar
核心程式碼:
檢視:
<!--長條形狀進度條--> <ProgressBar android:id="@+id/firstBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="200dp" android:layout_height="wrap_content" android:visibility="gone" /> <!--圓形狀進度條--> <ProgressBar android:id="@+id/secondBar" style="?android:attr/progressBarStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" />
資料:
private ProgressBar firstBar =null; private ProgressBar secondBar = null; //根據控制元件的ID來取得代表控制元件的物件 firstBar = (ProgressBar)findViewById(R.id.firstBar); secondBar = (ProgressBar)findViewById(R.id.secondBar); //設定進度條處於可見的狀態 firstBar.setVisibility(View.VISIBLE); firstBar.setMax(150); secondBar.setVisibility(View.VISIBLE); //設定主進度條的當前值 firstBar.setProgress(i); //設定第二進度條的當前值 firstBar.setSecondaryProgress(i + 10); //因為預設的進度條無法顯示進行的狀態 //secondBar.setProgress(i); //設定進度條處於不可見狀態 firstBar.setVisibility(View.GONE); secondBar.setVisibility(View.GONE);
控制元件圖例:
具體應用:
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" > <!--長條形狀進度條--> <ProgressBar android:id="@+id/firstBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="200dp" android:layout_height="wrap_content" android:visibility="gone" /> <!--圓形狀進度條--> <ProgressBar android:id="@+id/secondBar" style="?android:attr/progressBarStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" /> </LinearLayout>
Activity.java檔案:
package mars.progressbar;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;
public class ProgressBarTest extends Activity {
/** Called when the activity is first created. */
//宣告變數
private ProgressBar firstBar =null;
private ProgressBar secondBar = null;
private Button myButton = null;
private int i = 0 ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//根據控制元件的ID來取得代表控制元件的物件
firstBar = (ProgressBar)findViewById(R.id.firstBar);
secondBar = (ProgressBar)findViewById(R.id.secondBar);
myButton = (Button)findViewById(R.id.myButton);
myButton.setOnClickListener(new ButtonListener());
}
class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
if(i == 0)
{
//設定進度條處於可見的狀態
firstBar.setVisibility(View.VISIBLE);
firstBar.setMax(150);
secondBar.setVisibility(View.VISIBLE);
}
else if ( i < firstBar.getMax()){
//設定主進度條的當前值
firstBar.setProgress(i);
//設定第二進度條的當前值
firstBar.setSecondaryProgress(i + 10);
//因為預設的進度條無法顯示進行的狀態
//secondBar.setProgress(i);
}
else{
//設定進度條處於不可見狀態
firstBar.setVisibility(View.GONE);
secondBar.setVisibility(View.GONE);
}
i = i + 10 ;
}
}
}