Android編程開發(fā)之seekBar采用handler消息處理操作的方法
本文實(shí)例講述了Android編程開發(fā)之seekBar采用handler消息處理操作的方法。分享給大家供大家參考,具體如下:
該案例簡單實(shí)現(xiàn)進(jìn)度條可走,可拖拽的功能,下面請(qǐng)看源碼:
布局文件:
<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;
}
}
效果圖(自動(dòng)走):

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android異步消息處理機(jī)制實(shí)現(xiàn)原理詳解
- Android編程實(shí)現(xiàn)異步消息處理機(jī)制的幾種方法總結(jié)
- Android消息處理機(jī)制Looper和Handler詳解
- android的消息處理機(jī)制(圖文+源碼分析)—Looper/Handler/Message
- 關(guān)于Android中Gradle和jar包下載慢的問題及解決方法
- AndroidStudio升級(jí)4.1后啟動(dòng)失敗Plugin問題解決
- AndroidStudio升級(jí)4.1坑(無法啟動(dòng)、插件plugin不好用、代碼不高亮)
- Android Studio 運(yùn)行按鈕灰色的完美解決方法
- 更新至Android Studio4.1后發(fā)現(xiàn)as打不開的解決方法(原因分析)
- 詳解Android 消息處理機(jī)制
相關(guān)文章
Android開發(fā)之獲取LayoutInflater對(duì)象的方法總結(jié)
這篇文章主要介紹了Android開發(fā)之獲取LayoutInflater對(duì)象的方法,結(jié)合實(shí)例形式總結(jié)分析了Android獲取LayoutInflater對(duì)象的常用技巧,需要的朋友可以參考下2016-02-02
Jetpack Compose實(shí)現(xiàn)列表和動(dòng)畫效果詳解
這篇文章主要為大家詳細(xì)講講Jetpack Compose實(shí)現(xiàn)列表和動(dòng)畫效果的方法步驟,文中的代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-06-06
Kotlin作用域函數(shù)應(yīng)用詳細(xì)介紹
作用域函數(shù):是Kotlin標(biāo)準(zhǔn)庫中的內(nèi)聯(lián)函數(shù),作用在對(duì)象上時(shí),執(zhí)行給定的block代碼塊。可以在block代碼塊中通過it,this代表當(dāng)前對(duì)象,進(jìn)行代碼邏輯處理2022-08-08
Android7.0開發(fā)實(shí)現(xiàn)Launcher3去掉應(yīng)用抽屜的方法詳解
這篇文章主要介紹了Android7.0開發(fā)實(shí)現(xiàn)Launcher3去掉應(yīng)用抽屜的方法,結(jié)合實(shí)例形式分析了Android7.0 Launcher3調(diào)整界面布局的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2017-11-11
Android組件之DrawerLayout實(shí)現(xiàn)抽屜菜單
DrawerLayout組件同樣是V4包中的組件,也是直接繼承于ViewGroup類,所以這個(gè)類也是一個(gè)容器類。接下來通過本文給大家介紹Android組件之DrawerLayout實(shí)現(xiàn)抽屜菜單,感興趣的朋友一起學(xué)習(xí)吧2016-02-02
android使用ItemDecoration給RecyclerView 添加水印
本篇文章主要介紹了android使用ItemDecoration給RecyclerView 添加水印,介紹了自定義Drawable來完成水印圖片和使用ItemDecoration來布局水印,有興趣的可以了解一下。2017-02-02
Android使用RotateImageView 旋轉(zhuǎn)ImageView
這篇文章主要介紹了Android使用RotateImageView 旋轉(zhuǎn)ImageView 的相關(guān)資料,需要的朋友可以參考下2016-01-01

