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("非常满意");
                }
            }
        });
    }


}
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. Android进度条函数 Android 提供了多种类型的进度条函数,您可以根据您的需求选择合适的进度条函数。以下是一些常用的进度条函数: (1)ProgressDialog ProgressDialog 是 Android 提供的一个对话框,它可以显示一个进度条。在 ProgressDialog 中,您可以设置进度条的样式、进度条的进度、对话框的标题和消息等。 (2)ProgressBar ProgressBar 是 Android 提供的一个进度条控件。它可以在您的应用程序中显示一个进度条。您可以设置 ProgressBar 的样式、进度条的进度等。 (3)SeekBar SeekBar 是 Android 提供的一个滑动条控件。它可以在您的应用程序中显示一个可滑动的进度条。SeekBar 可以用来设置音量、亮度等。 2. Android ListView的使用方法 ListView 是 Android 提供的一个列表控件。它可以在您的应用程序中显示一个可滚动的列表。以下是 ListView 的使用方法: (1)创建一个 ListView 组件 您可以在布局文件中创建一个 ListView 组件。您可以使用以下代码: ``` <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content" /> ``` (2)创建一个 Adapter 您需要创建一个 Adapter 来为 ListView 提供数据。Adapter 可以将数据源(如数组或数据库)中的数据转换为 ListView 中的每个列表项。 (3)设置 Adapter 您需要使用 setAdapter() 方法将 Adapter 设置给 ListView。您可以使用以下代码: ``` ListView listView = findViewById(R.id.listview); MyAdapter adapter = new MyAdapter(this, data); listView.setAdapter(adapter); ``` 其中,MyAdapter 是您创建的 Adapter,data 是您要显示的数据源。 3. ProgressBar(进度条控件)的使用方法 ProgressBar 是 Android 提供的一个进度条控件。它可以在您的应用程序中显示一个进度条。以下是 ProgressBar 的使用方法: (1)创建一个 ProgressBar 组件 您可以在布局文件中创建一个 ProgressBar 组件。您可以使用以下代码: ``` <ProgressBar android:id="@+id/progressbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="visible" /> ``` (2)设置 ProgressBar 的进度 您可以使用 setProgress() 方法设置 ProgressBar 的进度。您可以使用以下代码: ``` ProgressBar progressBar = findViewById(R.id.progressbar); progressBar.setProgress(50); ``` 其中,50 是进度条的进度值。 (3)设置 ProgressBar 的样式 您可以使用 setIndeterminate() 方法设置 ProgressBar 的样式。如果将该方法的参数设置为 true,则 ProgressBar 将显示一个循环动画,表示进度条正在进行中。如果将该方法的参数设置为 false,则 ProgressBar 将显示一个静态的进度条。 ``` ProgressBar progressBar = findViewById(R.id.progressbar); progressBar.setIndeterminate(true); ``` 以上就是 Android 进度条函数、ListView 和 ProgressBar(进度条控件)的使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javaGHui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值