android进度条演示

package org.lxh;

import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ProgressActivity extends Activity {
    static final int PROGRESS_DIALOG = 0;
    Button button;
    ProgressThread progressThread;
    ProgressDialog progressDialog;
   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
       
        button = (Button) findViewById(R.id.Button);
        button.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                showDialog(PROGRESS_DIALOG);
            }
        });
      
    }
    protected Dialog onCreateDialog(int id) {
        switch(id) {
        case PROGRESS_DIALOG:
            progressDialog = new ProgressDialog(ProgressActivity.this);
            //设置进度的风格
            progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            //进度条的显示信息
            progressDialog.setMessage("Loading...");
            progressThread = new ProgressThread(handler);
            //启动进度线程
            progressThread.start();
            return progressDialog;
        default:
            return null;
        }
    } 
   
    //定义一个处理器从线程和进度更新获取信息
    final Handler handler = new Handler() {
        public void handleMessage(Message msg) {
            int total = msg.getData().getInt("total");
            progressDialog.setProgress(total);
            if (total >= 100){
            	//进度完成关闭进度对话框
                dismissDialog(PROGRESS_DIALOG);
                progressThread.setState(ProgressThread.STATE_DONE);
            }
        }
    }; 
    //进度的线程
    private class ProgressThread extends Thread {
        Handler mHandler;
        final static int STATE_DONE = 0;
        final static int STATE_RUNNING = 1;
        int mState;
        int total;
        ProgressThread(Handler h) {
            mHandler = h;
        }
        public void run() {
            mState = STATE_RUNNING;   
            total = 0;
            while (mState == STATE_RUNNING) {
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    Log.e("ERROR", "Thread Interrupted");
                }
                Message msg = mHandler.obtainMessage();
                //Bundle负责数据的传递
                Bundle b = new Bundle();
                b.putInt("total", total);
                msg.setData(b);
                //把信息保存到处理器中
                mHandler.sendMessage(msg);
                total++;
            }
        }
        /* sets the current state for the thread,
         * used to stop the thread */
        public void setState(int state) {
            mState = state;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 中,你可以使用 ProgressBar 组件来创建环形进度条。下面是一个简单的示例: 首先,在 XML 布局文件中添加 ProgressBar 组件: ```xml <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:max="100" android:progress="0" android:progressDrawable="@drawable/circular_progress_bar" /> ``` 其中,style 属性设置为 `?android:attr/progressBarStyleHorizontal`,用于将进度条样式设置为水平样式。 然后,在 drawable 文件夹下创建一个名为 `circular_progress_bar.xml` 的 XML 文件,用于定义进度条的样式: ```xml <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:toDegrees="360"> <shape android:innerRadiusRatio="3" android:shape="ring" android:thicknessRatio="8" android:useLevel="true"> <gradient android:centerColor="#FF4081" android:endColor="#FF4081" android:startColor="#FF4081" android:type="sweep" /> </shape> </rotate> ``` 这个 XML 文件定义了一个旋转的环形形状,并使用渐变颜色作为进度条颜色。 最后,在你的 Java 代码中,你可以通过以下方式获取 ProgressBar 组件,并更新进度: ```java ProgressBar progressBar = findViewById(R.id.progressBar); progressBar.setProgress(50); // 设置进度为 50 ``` 以上代码演示了如何将进度设置为 50,你可以根据需要修改进度值。 希望能帮到你!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值