zoukankan      html  css  js  c++  java
  • android progressBar和seekBar的小DEMO

     

    这里演示的是android ProgressBar的条形进度条,因为android条形进度条初始时静态的而不像圆形的进度条是动态的;

    而seekbar是android的拖动条,使用场景比如在音乐播放或者视频播放的时候~~~~

    xml布局文件(需要注意,在使用条形进度条的时候要选择的style类型为

    "?android:attr/progressBarStyleHorizontal"

    ):

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" 
        android:background="#BBBB0000">
    
        <ProgressBar
            android:id="@+id/pb"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            style="?android:attr/progressBarStyleHorizontal"
            android:max="100"
            android:progress="50"
            android:secondaryProgress="70"/>
        <SeekBar
            android:id="@+id/seekbar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/pb"
            android:text="拖动"/>
    
    </RelativeLayout>

    mainActivity.java文件:

    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.ProgressBar;
    import android.widget.SeekBar;
    import android.widget.SeekBar.OnSeekBarChangeListener;
    
    public class MainActivity extends Activity implements Runnable, OnSeekBarChangeListener {
        private ProgressBar pb;
        private Thread th;
        boolean statechange;
        SeekBar seekbar;
        private String tag = "SEEKBAR";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            pb = (ProgressBar)findViewById(R.id.pb);
            seekbar = (SeekBar)findViewById(R.id.seekbar);
            seekbar.setOnSeekBarChangeListener(this);
            th = new Thread(this);
            th.start();
        }
        @Override
        public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
            // TODO Auto-generated method stub
            Log.v(tag, "拖动改变");
        }
        @Override
        public void onStartTrackingTouch(SeekBar arg0) {
            // TODO Auto-generated method stub
            Log.v(tag, "改变中");
        }
        @Override
        public void onStopTrackingTouch(SeekBar arg0) {
            // TODO Auto-generated method stub
            Log.v(tag, "停止改变");
        }
        @Override
        public void run() {
            // TODO Auto-generated method stub
            while (true){
                int current = pb.getProgress();
                int currentMax = pb.getMax();
                int seccurrent = pb.getSecondaryProgress();
                if (statechange == false) {
                    if (current < currentMax) {
                        pb.setProgress(current +1);
                        pb.setSecondaryProgress(current +1);
                    }else if (current == currentMax) {
                        statechange = true;
                    }
                }
                else{
                    if (current > 0) {
                        pb.setProgress(current -1);
                        pb.setSecondaryProgress(current -1);
                    }else if (current == 0) {
                        statechange = false;
                    }
                }
                try {
                    Thread.sleep(100);
                } catch (Exception e) {
                    // TODO: handle exception
                    e.printStackTrace();
                }
            }
        }
        
    }   

    运行效果(进度条的业务代码是实现模拟进度的不断变化)

    图片居然不能上传了今天 ,等一下再补上吧。

  • 相关阅读:
    Java 设计模式——状态模式
    Java 设计模式——外观模式
    Java高级之虚拟机加载机制
    17.1.1.6 Creating a Data Snapshot Using Raw Data Files 创建一个数据快照使用 Raw Data Files
    17.1.1.5 Creating a Data Snapshot Using mysqldump
    17.1.1.4 Obtaining the Replication Master Binary Log Coordinates 得到复制master binary log 位置:
    17.1.1.3 Creating a User for Replication 创建一个用于用于复制:
    17.1.1.2 Setting the Replication Slave Configuration
    17.1.1.1 Setting the Replication Master Configuration 设置复制的master 配置:
    17.1.1 How to Set Up Replication 设置复制:
  • 原文地址:https://www.cnblogs.com/tiejiangweigaibianercunzai/p/3892234.html
Copyright © 2011-2022 走看看