• Android开发(22)--seekBar采用handler消息处理操作


    本案例简单实现进度条可走,可拖拽的功能,下面请看源码:

    布局文件:

    <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" >
    
        <SeekBar
            android:id="@+id/seekBar1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true" />
    
    </RelativeLayout>
    


    java文件:

    package com.example.lession16_seekbar;
    
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.SeekBar;
    
    public class MainActivity extends Activity {
    
    	private SeekBar seekBar;
    	
    	private static final int MAX_PROGRESS =100;
    	
    	private int current_progress=10;
    	
    	private static final int PRO=1;
    	
    	private Handler handler;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		seekBar = (SeekBar) this.findViewById(R.id.seekBar1);
    		
    		seekBar.setMax(MAX_PROGRESS);
    		
    	
    		
    	/*	new Thread(new Runnable() {
    			
    			@Override
    			public void run() {
    				while(true){
    					try {
    						Thread.sleep(600);
    						current_progress+=10;
    						seekBar.setProgress(current_progress);
    					} catch (InterruptedException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    				}
    				
    			}
    		}).start();*/
    		
    		handler = new Handler(){
    			 @Override
    			public void handleMessage(Message msg) {
    				super.handleMessage(msg);
    				
    				switch (msg.what) {
    				case PRO:
    					  if(current_progress>=MAX_PROGRESS){
    						  
    					  }else{
    						  current_progress+=1;
    						  seekBar.incrementProgressBy(1);
    						  
    						  handler.sendEmptyMessageDelayed(PRO, 600);
    					  }
    					break;
    
    				default:
    					break;
    				}
    			}
    		};
    		
    		
    	 current_progress=current_progress>0?current_progress:0;
    	 seekBar.setProgress(current_progress);
    	 
    	 handler.sendEmptyMessage(PRO);
    		
    	}
    
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    
    }
    


    效果图(自动走):

  • 相关阅读:
    算法学习——贪心篇
    Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)
    小白创建网站的曲折之路
    7.2.5 多层嵌套的if语句
    7.2.4 else与if配对
    7.2.3
    7.4 electirc.c -- 计算电费
    oracle数据库命令行查看存储过程
    Linux下如何查看进程准确启动时间
    7.2 if else 语句
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3155299.html
Copyright © 2020-2023  润新知