zoukankan      html  css  js  c++  java
  • 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;
    	}
    
    }
    


    效果图(自动走):

  • 相关阅读:
    JavaScript.对象分类
    基于NDK的Android防破解& Android防破解 【转载】
    C++ 关键字——friend【转载】
    Python基础教程学习笔记:第二章 列表和元组
    Android安装器学习笔记(一)
    Python基础教程学习笔记:第一章 基础知识
    Android重写HorizontalScrollView仿ViewPager效果
    C语言realloc,malloc,calloc的区别【转载】
    Objective-C 协议和运行时检查方法、类是否存在
    下拉刷新 上拉更多 支持ListView GridView WebView【转载】
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3155299.html
Copyright © 2011-2022 走看看