控件ProgressBar就是对进度条的设定,有环形有条形等,如下图:
具体的直接看例子,就是方法的使用,没太多好讲的。
MainActivity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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/pb_cir"
android:layout_width="81dp"
android:layout_height="75dp" />
<!-- myClick具体实现方法在Main.java中-->
<Button
android:layout_width="159dp"
android:layout_height="67dp"
android:onClick="myClick"
android:text="显示/隐藏进度条" />
<!-- 水平进度条
android:indeterminate="true" 进度条进度不显示,只显示在加载状态
-->
<ProgressBar
android:id="@+id/pb_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="200dp"
android:layout_height="40dp"
android:max="100" />
<!-- load具体实现方法在Main.java中-->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="load"
android:text="模拟下载进度" />
</LinearLayout>
MainActivity.java
package com.example.myprogressbar;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
public class MainActivity extends AppCompatActivity {
创建全局的对象pb(在这里可以认为onCreate才是main)
private ProgressBar pb_cir; //环形进度条
private ProgressBar pb_bar; //条形进度条
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pb_cir = findViewById(R.id.pb_cir);
pb_bar = findViewById(R.id.pb_bar);
}
//从Main.xml中过来,实现这个方法
public void myClick(View view) { //表示当点击事件发生时
if (pb_cir.getVisibility() == View.GONE) { //如果进度条是不可见的
pb_cir.setVisibility(view.VISIBLE); //则设置为可见的
} else {
pb_cir.setVisibility(view.GONE); //否则设置为不可见的
}
}
public void load(View view) {
int progress = pb_bar.getProgress();//获取进度值
progress += 10; //每点击一次按钮,进度+10(最大值为100,在max中设置)
pb_bar.setProgress(progress); //设置进度值
}
}
其中,在控件Button中设定的onclick方法名为myClick,要在Main.java中实现具体的操作方法,如下图: