Android: ProgressBar 简单的进度条应用

 

main.xml

MainActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ProgressBar;
import android.widget.RatingBar;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;

import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends Activity {

    //定义进度条
    private ProgressBar progressBar;
    private ProgressBar pb;
    //定义 提示文本
    private TextView textView;
    private TextView tv;
    private TextView tvsb;
    private TextView tvpinfen;
    //定义 定时器
    private Timer timer = new Timer();

    //定义拖动条
    private SeekBar seekBar;
    // RatingBar:星级评分条
    private RatingBar ratingBar;
    //Handler消息机制
    private Handler handler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage( Message msg) {

            if(msg.what == 0x011){
              //获取进度条当前的进度
               int currentProgress= progressBar.getProgress();

                if(currentProgress >= 100){
                    //停止计时器
                    timer.cancel();
                    textView.setText("下载完成!");
                    tv.setText("完成下载!");
                    //弹出框
                    Toast.makeText(getApplication(),"下载完成!",Toast.LENGTH_SHORT).show();
                    return true;
                }
                // 认为下下载了1m ,控制进度条走动
                progressBar.setProgress(currentProgress + 1);
                textView.setText(progressBar.getProgress()+"%");

                pb.setProgress(currentProgress + 1);
                tv.setText(progressBar.getProgress()+"%");

            }
            //表示没有有结束
            return false;
        }
    });
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //或获取对象
        progressBar = findViewById(R.id.pbxitong);
        pb = findViewById(R.id.pb);
        seekBar = findViewById(R.id.sbar);
        ratingBar = findViewById(R.id.rb);

        //获取文本提示对象
        textView = findViewById(R.id.tip);
        tv = findViewById(R.id.toptip);
        tvsb = findViewById(R.id.sbtip);
        tvpinfen = findViewById(R.id.pingfen);

        ///模拟下载
        //100毫秒调用一次
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
            //发消息 0x011 16进制数
            handler.sendEmptyMessage(0x011);
            }
        },0,100);

        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                /***进度条发送改变执行此方法
                 * seekBar  当前拖拉进度条
                 * progress 拖拉进度
                 * fromUser 是否来自用户拖动 true,false 代码控制
                 * */
                tvsb.setText(progress+"%");
             }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                // 开始改变进度执行此方法
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                //结束拖拉执行次方法
            }
        });

        //星级评分
        ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
            @Override
            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
                if(rating <= 1){
                    tvpinfen.setText("差评");
                }else if(rating > 1 && rating <= 2){
                    tvpinfen.setText("一般");
                }else if(rating > 2 && rating <= 3){
                    tvpinfen.setText("比较满意");
                }else if(rating > 3 && rating <= 4){
                    tvpinfen.setText("满意");
                }else if(rating > 4 && rating <= 5){
                    tvpinfen.setText("非常满意");
                }
            }
        });
    }

}
 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>