使用ProgressBar顯示進度條
阿新 • • 發佈:2018-12-31
此文,僅做為個人學習Android,記錄成長以及方便複習!
首先是設定UI介面
1.activity_main.xml
每個按鈕都添加了 android:onClick="onclick" 方便使用監聽方法,不用例項化按鈕
ProgressBar的幾個常用引數
style="?android:attr/progressBarStyleHorizontal" //設定顯示樣式,此為顯示進度的樣式 android:progress="50" //第一進度 android:secondaryProgress="80" //第二進度 android:max="100" //最大刻度
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal" android:progress="50" android:secondaryProgress="80" android:max="100" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="增加10%" android:onClick="onclick" android:layout_below="@+id/progressBar"/> <Button android:id="@+id/reduction" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="減加10%" android:onClick="onclick" android:layout_below="@+id/add"/> <Button android:id="@+id/reset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="重置" android:onClick="onclick" android:layout_below="@+id/reduction"/> <TextView android:id="@+id/tv1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#ff0000" android:textSize="20sp" android:layout_below="@+id/reset"/> </RelativeLayout>
接下來就是Activity
MainActivity.java
package com.rui.progressbardome; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private ProgressBar progressBar;//建立ProgressBar private TextView tv1;//建立TextView @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init();//呼叫init方法 } public void init(){ progressBar = findViewById(R.id.progressBar); tv1 = findViewById(R.id.tv1); int max = progressBar.getMax();//獲取進度最大值 int progress= progressBar.getProgress();//獲取第一進度 int sdProgress= progressBar.getSecondaryProgress();//獲取第二進度 //百分比是先把除數的整型轉換成浮點型,相除的結果是一個0~1之間的小數 // 再乘以100得到0~100之間的小數,最後把這個小數轉換成整數。 // 其實不用那麼麻煩,改成 100*progress/max 和 100*sdProgress/max 就可以了: tv1.setText("第一進度百分比:"+(int)((progress/(float)max)*100)+"% 第二進度百分百:"+(int)((sdProgress/(float)max)*100)); } //按鈕監聽事件 public void onclick(View view){ switch(view.getId()){ case R.id.add: //第一進度增加10 progressBar.incrementProgressBy(10); //第二進度增加10 progressBar.incrementSecondaryProgressBy(10); break; case R.id.reduction: //第一進度減少10 progressBar.incrementProgressBy(-10); //第二進度減少10 progressBar.incrementSecondaryProgressBy(-10); break; case R.id.reset: //設定第一進度 progressBar.setProgress(50); //設定第二進度 progressBar.setSecondaryProgress(80); break; } //重新獲取進度並在tv1顯示! tv1.setText("第一進度百分比:"+progressBar.getProgress()+"% 第二進度百分百:"+progressBar.getSecondaryProgress()); } }
執行後,單擊增加按鈕2次 效果如下
單擊減少按鈕1次 效果如下
點選重置按鈕如下