SeekBar

SeekBar 界面:

===================================================================================

代码实现:MainActivity.ja  1 package com.example.aa09_seekbar;    3 import android.os.Bundle;

  4 import android.app.Activity;
  5 import android.content.BroadcastReceiver;
  6 import android.content.Context;
  7 import android.content.Intent;
  8 import android.content.IntentFilter;
  9 import android.util.Log;
 10 import android.view.Menu;
 11 import android.view.View;
 12 import android.view.View.OnClickListener;
 13 import android.widget.Button;
 14 import android.widget.SeekBar;
 15 import android.widget.SeekBar.OnSeekBarChangeListener;
 16 import android.widget.TextView;
 17
 18 public class MainActivity extends Activity {
 19  private TextView tv_current, tv_max;
 20  private SeekBar seekBar1;
 21  private Button start, stop;
 22  private int myprogress = 0;
 23  private BroadcastReceiver receiver = new BroadcastReceiver() {
 24
 25   @Override
 26   public void onReceive(Context context, Intent intent) {
 27    int count = intent.getIntExtra("count", 0);
 28    tv_current.setText("当前值:" + count);//文本的改变settext
 29    seekBar1.setProgress(count);//拖动条的progress的改变
 30
 31   }
 32  };
 33
 34  @Override
 35  protected void onCreate(Bundle savedInstanceState) {
 36   super.onCreate(savedInstanceState);
 37   setContentView(R.layout.activity_main);
 38   findbyid();
 39   Init();
 40   Listener();
 41  }
 42
 43  private void Init() {
 44   tv_current.setText("当前值:0");
 45   tv_max.setText("最大值:100");
 46   seekBar1.setProgress(0);
 47   seekBar1.setMax(100);
 48   IntentFilter if1 = new IntentFilter();
 49   if1.addAction("action");
 50   registerReceiver(receiver, if1);
 51
 52  }
 53
 54  private void findbyid() {
 55   tv_current = (TextView) findViewById(R.id.tv_current);
 56   tv_max = (TextView) findViewById(R.id.tv_max);
 57   seekBar1 = (SeekBar) findViewById(R.id.seekBar1);
 58   start = (Button) findViewById(R.id.start);
 59   stop = (Button) findViewById(R.id.stop);
 60
 61  }
 62
 63  private void Listener() {
 64   start.setOnClickListener(new OnClickListener() {
 65
 66    @Override
 67    public void onClick(View v) {
 68     Intent i = new Intent(getApplicationContext(), myService.class);
 69     i.putExtra("myprogress", myprogress);
 70     startService(i);//开启服务 完成计数
 71
 72    }
 73   });
 74   stop.setOnClickListener(new OnClickListener() {
 75
 76    @Override
 77    public void onClick(View v) {
 78     Intent i = new Intent(getApplicationContext(), myService.class);
 79
 80     stopService(i);//停止服务,暂停
 81
 82    }
 83   });
 84   seekBar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
 85
 86    @Override
 87    public void onStopTrackingTouch(SeekBar seekBar) { // 停止时的事件处理
 88     // TODO Auto-generated method stub
 89     Log.i("Test", "---onStopTrackingTouch");
 90     Intent i = new Intent();
 91     i.setAction("count");
 92     i.putExtra("count", seekBar.getProgress());
 93     sendBroadcast(i);
 94
 95    }
 96
 97    @Override
 98    public void onStartTrackingTouch(SeekBar seekBar) {// 开始时的事件处理
 99     // TODO Auto-generated method stub
100     Log.i("Test", "---onStartTrackingTouch");
101    }
102
103    @Override
104    public void onProgressChanged(SeekBar seekBar, int progress,
105      boolean fromUser) {// 改变时的事件处理
106     tv_current.setText("当前值:" + progress);//拖动是改变
107     Log.i("Test", "---onProgressChanged");
108     myprogress = progress;
109
110    }
111   });
112
113  }
114
115  @Override
116  protected void onDestroy() {
117   // TODO Auto-generated method stub
118   super.onDestroy();
119   unregisterReceiver(receiver);
120   Intent i = new Intent(getApplicationContext(), myService.class);
121
122   stopService(i);
123 }}

=============================================================================================

myServer.java

 1 package com.example.aa09_seekbar;
 2
 3 import android.app.Service;
 4 import android.content.BroadcastReceiver;
 5 import android.content.Context;
 6 import android.content.Intent;
 7 import android.content.IntentFilter;
 8 import android.os.IBinder;
 9 import android.util.Log;
10
11 public class myService extends Service {
12  private boolean flag = false;
13  private static int count = 0;
14  private MyThead mt;
15  private Thread t;
16
17  private BroadcastReceiver receiver = new BroadcastReceiver() {
18
19   @Override
20   public void onReceive(Context context, Intent intent) {
21    int intExtra = intent.getIntExtra("count", 0);
22    count = intExtra;
23
24   }
25  };
26
27  @Override
28  public IBinder onBind(Intent intent) {
29   // TODO Auto-generated method stub
30   return null;
31  }
32
33  @Override
34  public void onCreate() {
35
36   super.onCreate();
37   mt = new MyThead();// runnable 实现run方法
38   IntentFilter if1 = new IntentFilter();
39   if1.addAction("count");
40   registerReceiver(receiver, if1);
41
42  }
43
44  @Override
45  public void onStart(Intent intent, int startId) {
46   // TODO Auto-generated method stub
47   super.onStart(intent, startId);
48   count = intent.getIntExtra("myprogress", count);
49
50   t = new Thread(mt);
51   t.start();
52
53  }
54
55  @Override
56  public void onDestroy() {
57   super.onDestroy();
58   mt.setstop();
59   unregisterReceiver(receiver);
60
61  }
62
63  class MyThead implements Runnable {
64   @Override
65   public void run() {
66
67    while (!flag) {
68
69     Log.i("Test", "进入while");
70     try {
71      Thread.sleep(1000);
72      count++;
73      if (count == 100) {
74       flag = true;
75      }
76      Intent intent = new Intent();
77      intent.setAction("action");
78      intent.putExtra("count", count);
79      sendBroadcast(intent);// 不停的在发送
80
81     } catch (InterruptedException e) {
82      // TODO Auto-generated catch block
83      e.printStackTrace();
84     }
85    }
86   }
87
88   void setstop() {
89    flag = true;
90    }
91  }
92 }

===============================================================================================

AndroidManifest.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="com.example.aa09_seekbar"
 4     android:versionCode="1"
 5     android:versionName="1.0" >
 6
 7     <uses-sdk
 8         android:minSdkVersion="10"
 9         android:targetSdkVersion="10" />
10
11     <application
12         android:allowBackup="true"
13         android:icon="@drawable/ic_launcher"
14         android:label="@string/app_name"
15         android:theme="@style/AppTheme" >
16         <activity
17             android:name="com.example.aa09_seekbar.MainActivity"
18             android:label="@string/app_name" >
19             <intent-filter>
20                 <action android:name="android.intent.action.MAIN" />
21
22                 <category android:name="android.intent.category.LAUNCHER" />
23             </intent-filter>
24         </activity>
25
26         <service android:name="com.example.aa09_seekbar.myService" >
27         </service>
28     </application>
29
30 </manifest>

AndroidManiAndroidManifest.xmlfest.xmlAndroidManifest.xml

m============yService.java

myService.java

myService.java

时间: 2024-08-27 04:44:09

SeekBar的相关文章

Android 自定义带刻度的seekbar

自定义带刻度的seekbar 1.布局 <span style="font-family:SimHei;font-size:18px;"><com.imibaby.client.views.CustomSeekbar android:id="@+id/myCustomSeekBar" android:layout_width="wrap_content" android:layout_height="wrap_cont

Android学习笔记18:自定义Seekbar拖动条式样

Android学习笔记18:自定义Seekbar拖动条式样

android 双向滑动 seekbar

实现原理: 1.自定义View,在onDraw(Canvas canvas)中,画出2个Drawable滑动块,2个Drawable滑动条,2个Paint(text) 2.监听onTouchEvent()事件,修改滑块和滑动条的坐标,调用invalidate()来更新界面 使用方法 1.自定义View   SeekBarPressure.class package xxxxxxxxx import android.content.Context; import android.content.r

Android 拖动条(SeekBar)实例 附完整demo项目代码

1.拖动条的事件 实现SeekBar.OnSeekBarChangeListener接口.需要监听三个事件:数值改变(onProgressChanged)开始拖动(onStartTrackingTouch)停止拖动(onStopTrackingTouch) onStartTrackingTouch开始拖动时触发,与onProgressChanged区别是停止拖动前只触发一次而onProgressChanged只要在拖动,就会重复触发. 2.拖动条的主要属性和方法setMax 设置拖动条的数值se

android学习SeekBar的使用

SeekBar介绍听歌的时候,我们常常想快进或者快退到某一时间段,听歌的时候我们控制音量大小听歌,SeekBar可以通过滑块的位置来标示数值,而且拖动条允许用户拖动滑块来改变进度条的大小 SeekBar的主要属性和方法(1)setMax --- 设置SeekBar的最大数值(2)setProgress --- 设置SeekBar的当前数值(3)setSecondProgress---设置SeekBar的第二数值 即当前拖动条的推荐位置SeekBar的事件由于拖动条可以诶用户控制.所以需要对其事件

Android中用seekbar控件控制歌曲的进度

本人菜鸟一枚,在编写android中用seekbar控件控制歌曲的进度和seekbar随着歌曲的播放自动运动的程序有一些自己的见解,希望各位大牛们多多指点······ 废话先不多说了,先贴一张程序的图吧: 界面不怎么好看,没经过美化,大家将就这看一下吧. 主要思路是运用线程每隔一秒显示一下seekbar控件所在的位置,(这个是使进度条随着歌曲的进度而不断的变化,如果大家想使进度条增加的更连续,可以改变程序循环运行的时间,使其更快) 我只把关于seekbar的程度拿出来了: private int

SeekBar自定义样式

网上的SeekBar自定义样式的资料很多,大多是抄来抄去.我最近用到这个,也从网上抄了一个,但是遇到不少问题,其中一个就是SeekBar的背景条不显示,最后才找到解决方法. 1. 使用自定义SeekBar <SeekBar android:id="@+id/ctrl_seekBar" android:layout_width="wrap_content" android:layout_height="wrap_content" androi

Android 自学之拖动条SeekBar

拖动条(SeekBar)和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值----而且拖动条允许用户拖动滑动块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如音量调节. SeekBar允许用户改变拖动条的滑块外观,改变滑块外观通过如下属性来指定 android:thumb  指定一个Drawable对象,该对象将作为自定义滑块. 为了让程序能响应拖动条滑块位置的改变,程序可以考虑为他绑定一个OnSeekBarChangerListener监

Android使用SeekBar时动态显示进度且随SeekBar一起移动

最近有做一个android项目,里面有使用到在播放视频时可以跳播,同时动态显示播放时间.类似于下图 的效果,我只是抽取其中的一部分做展示,刚接到这个事时也是在网上一通找,最后没找到!而且还碰到有些朋友和我有一样的需求,不知该如何做!现在我分享下自己做的!做的不好,多多包涵!因为上传不了附件,就直接贴代码了! 1:第一个类是自定义的一个类 也就是SeekBar上方会跟随其一块移动的控件,其实非常简单的一个类 package com.example.textmovebyseekbar; import

控制SeekBar进度条来同时触发ProgressBar

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent