zoukankan      html  css  js  c++  java
  • Android中ProgressBar的三个效果

    先上一张界面图,如图,我要实现的效果是点击开始,进度条开始加载。点击暂停,进度条停止加载。点击继续,进度条继续加载

    xml布局文件:

    <LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ProgressBar
    android:layout_gravity="center_horizontal"
    android:id="@+id/progress"
    android:layout_width="300px"
    android:layout_height="wrap_content"
    android:max="1000"
    style="?android:progressBarStyleHorizontal"
    android:layout_marginTop="50px"

    />


    <Button
    android:id="@+id/star"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="开始"

    android:layout_gravity="center_horizontal"
    />
    <Button
    android:id="@+id/stop"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="暂停"
    android:layout_gravity="center_horizontal"
    />
    <Button
    android:id="@+id/resume"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="继续"
    android:layout_gravity="center_horizontal"
    />

    </LinearLayout>




    Activity文件添加事件
    package com.contentprovide.liuliu.progreessbar_demo;

    import android.os.Handler;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ProgressBar;
    import android.os.Message;

    public class MainActivity extends AppCompatActivity {

    ProgressBar progress;
    int value=0;
    int scondvalue=0;
    Handler handle = new Handler();
    Button star,stop,resume;

    线程,把进度条的变化效果放在里面
    Runnable run = new Runnable() {
    @Override
    public void run() {
    value+=5;
    scondvalue += 10;
    progress.setProgress(value);
    progress.setProgress(value);
    handle.postDelayed(run,200);
    }
    };




    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    progress = (ProgressBar) findViewById(R.id.progress);
    star = (Button) findViewById(R.id.star);
    stop = (Button) findViewById(R.id.stop);
    resume = (Button) findViewById(R.id.resume);

            开始事件
    star.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    handle.postDelayed(run,200);//把Runable对象放进handle中,每隔200毫秒执行一次,注意:在Runable中也要放这句话

    }
    });


    stop.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    handle.removeCallbacks(run);//移除线程
    }
    });

    resume.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    handle.postDelayed(run,200);
    }
    });


    }

    }





  • 相关阅读:
    Effective Java 第三版——72. 赞成使用标准异常
    Effective Java 第三版——71. 避免不必要地使用检查异常
    Effective Java 第三版——70. 对可恢复条件使用检查异常,对编程错误使用运行时异常
    Effective Java 第三版——69. 仅在发生异常的条件下使用异常
    Effective Java 第三版——68. 遵守普遍接受的命名约定
    Effective Java 第三版——67. 明智谨慎地进行优化
    Effective Java 第三版——66. 明智谨慎地使用本地方法
    Effective Java 第三版——65. 接口优于反射
    Effective Java 第三版——64. 通过对象的接口引用对象
    Effective Java 第三版——63. 注意字符串连接的性能
  • 原文地址:https://www.cnblogs.com/lyd447113735/p/7977765.html
Copyright © 2011-2022 走看看