3.6、进度条ProgressBar

源码地址:https://github.com/ldy1993/ToolforAS.git

简单做一下例子,了解一下,真正使用还是得百度一下好看的自定义进度条。

实际效果:

代码如下

public class Day8_Activity extends Activity {
    private ProgressBar pb;
    int i = 0;
    private final int progressBar=0;
// volatile是一个类型修饰符(type specifier),被设计用来修饰被不同线程访问和修改的变量
    public volatile boolean exit = false;
    private Thread thread;
private Handler handler=new Handler(){
    public void handleMessage(Message msg) {
        switch (msg.what)
        {
            case progressBar:
                pb.setProgress(msg.arg1);
                break;
        }
    }
};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_day8);
         pb=findViewById(R.id.pb);
        thread = new Thread(new Runnable() {
            @Override
            public void run() {


                while (!exit) {
                    try {
                        thread.sleep(200);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    Message message = new Message();
                    if (i <= 100) {
                        i++;
                    } else {
                        i = 0;
                    }
                    message.what = progressBar;
                    message.arg1 = i;
                    handler.sendMessage(message);

                }
            }
        });
        thread.start();
//                setProgress(int) 设置第一进度
//        setSecondaryProgress(int) 设置第二进度
    }
public void begin(View view)
{
    startThread();
}
    public void stop(View view)
    {
        exit=true;
    }
    private void startThread()
    {

        if(exit==true) {
            exit = false;
            thread = new Thread(new Runnable() {
                @Override
                public void run() {


                    while (!exit) {
                        try {
                            thread.sleep(200);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                            Message message = new Message();
                            if (i <= 100) {
                                i++;
                            } else {
                                i = 0;
                            }
                            message.what = progressBar;
                            message.arg1 = i;
                            handler.sendMessage(message);

                    }
                }
            });
            thread.start();
        }

    }
}
<?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"
    android:background="#ffffff">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="旋转进度条,用于加载动画"
       />
    <ProgressBar
        style="@android:style/Widget.ProgressBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="水平进度条"/>
    <ProgressBar
        android:id="@+id/pb"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:max="100"
        android:progress="50"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="水平另外一个样式的进度条"/>
    <ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100"
        android:progress="50"
        android:secondaryProgress="80"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="begin"
            android:background="#0044ff"
            android:text="开始"
            android:layout_marginRight="10dp"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#ee0000"
            android:onClick="stop"
            android:text="暂停" />
    </LinearLayout>

</LinearLayout>

下一节:

安卓学习回顾与整理_(3.7、对话框Dialog)_day9

https://blog.csdn.net/u013636987/article/details/102071295

发布了39 篇原创文章 · 获赞 2 · 访问量 5019

猜你喜欢

转载自blog.csdn.net/u013636987/article/details/102067605
今日推荐