首页 > 系统 > Android > 正文

Android编程开发之seekBar采用handler消息处理操作的方法

2020-04-11 11:07:27
字体:
来源:转载
供稿:网友

本文实例讲述了Android编程开发之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; }}

效果图(自动走):

希望本文所述对大家Android程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表