天天看點

【Android】ProgressBar圓形加載樣式、進度條樣式以及代碼控制顯示隐藏

一、預覽

ProgressBar的使用很簡單,先看一下效果圖

【Android】ProgressBar圓形加載樣式、進度條樣式以及代碼控制顯示隐藏

二、layout布局

就放了兩個progressBar和兩個Button

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_marginTop="50dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="圓形加載樣式progressBar"/>
        
        預設的樣式是圓形加載樣式
    <ProgressBar
        android:id="@+id/progressBar1"
        android:layout_width="match_parent"
        android:visibility="gone"  先讓它隐藏,代碼控制顯示
        android:layout_height="wrap_content"/>

    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="顯示"/>


    <TextView
        android:layout_marginTop="50dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="進度條樣式progressBar"/>
    <ProgressBar
        android:id="@+id/progressBar2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"  先讓它隐藏,代碼控制顯示
        style="?android:attr/progressBarStyleHorizontal"  設定為水準進度條樣式
        android:max="100"  設定進度條的最大值為100
        />
    <Button
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="顯示"/>

</LinearLayout>
           

三、代碼控制progressBar的顯示和隐藏

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private Button btn1,btn2;
    private ProgressBar progressBar1,progressBar2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn1 = findViewById(R.id.btn1);
        btn2 = findViewById(R.id.btn2);
        progressBar1 = findViewById(R.id.progressBar1);
        btn1.setOnClickListener(this);
        progressBar2 = findViewById(R.id.progressBar2);
        btn2.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            //顯示圓形加載樣式progressBar
            case R.id.btn1:
            	//判斷ProgressBar目前是否可見,并且設定其是否可見
            	//View.VISIBLE是顯示,View.INVISIBLE是隐藏但占位置,View.GONE是消失不占位置
                if (progressBar1.getVisibility()==View.GONE){
                    progressBar1.setVisibility(View.VISIBLE);
                }else {
                    progressBar1.setVisibility(View.GONE);
                }
                break;
            //顯示進度條樣式progressBar
            case R.id.btn2:
                progressBar2.setVisibility(View.VISIBLE);
                int progress = progressBar2.getProgress();//擷取目前進度
                progress += 10;
                progressBar2.setProgress(progress); //重新設定進度
                if(progress > 100){
                    progressBar2.setVisibility(View.GONE);
                }
                break;
             default:
                 break;
        }

    }
}