圆形进度条

只需要加入ProgressBar,默认即是圆形

xml文件

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        
        <ProgressBar
            android:id="@+id/progress1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </ProgressBar>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="18dp"
            android:textStyle="bold"
            android:gravity="center"
            android:text="正在加载中">
        </TextView>
  </LinearLayout>

效果图

android ProgressBar 斜线 android progressbar 圆形_进度条

水平进度条

这里的样式相较之下会复杂一下些,且会用到一个新的控件seekbar(一个可以拖动的组件),我们希望拖动seekbar时,ProgressBar的进度会随之匹配,同时,下方的TextView会显示当前的进度

xml文件

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <ProgressBar
                android:id="@+id/progress2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:progress="20"
                android:padding="10dp"
                style="@style/Widget.AppCompat.ProgressBar.Horizontal">
            </ProgressBar>
            <SeekBar
                android:id="@+id/seekbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
            </SeekBar>
            <TextView
                android:id="@+id/tv_progress"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="16dp"
                android:gravity="center"
                android:text="当前的进度是">

            </TextView>

        </LinearLayout>




package com.cdw.study3;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.TextView;

public class ProgressActivity extends AppCompatActivity {
    private ProgressBar progressBar2;
    private SeekBar seekBar;
    private TextView tv_progress;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_progress);
        initView();
    }
    /*
    初始化控件
     */
    private void initView() {
        progressBar2=findViewById(R.id.progress2);
        seekBar=findViewById(R.id.seekbar);
        tv_progress=findViewById(R.id.tv_progress);

        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            //seekbar绑定进度条的进度
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
                //设置水平进度条的进度由seekbar的当前进度填充
                progressBar2.setProgress(progress);
                tv_progress.setText("当前进度为"+progress +"%");

            }
            //拖动事件时触发
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }
            //拖动停止时触发
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                //判断进度条是否到达100%,达到即消失
                if (progressBar2.getProgress()>=progressBar2.getMax()){
                    progressBar2.setVisibility(View.INVISIBLE);
                }else {
                    progressBar2.setVisibility(View.VISIBLE);
                }
            }
        });
    }
}

效果图

android ProgressBar 斜线 android progressbar 圆形_android_02

当拖动至100%,ProgressBar将会消失

android ProgressBar 斜线 android progressbar 圆形_进度条_03

当seekbar回退时,ProgressBar就会重新显示

结束