`
wang_peng1
  • 浏览: 3968118 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

动态更新seekBar

阅读更多
public class MediaPlayerActivity extends Activity implements Runnable{
    /** Called when the activity is first created. */

    private MediaPlayer mPlayer;
    private ImageButton mPlay;
    private ImageButton mPause;
    private SeekBar mSeekBar;
    private int total;

    public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);
	mPlay = (ImageButton) findViewById(R.id.play);
	mPause = (ImageButton) findViewById(R.id.pause);
	mSeekBar = (SeekBar) findViewById(R.id.seekbar);
	mPlayer = MediaPlayer.create(this,R.raw.mp3_file_name);
	mSeekBar.setProgress(0);
	total = mPlayer.getDuration();
	mPause.setVisibility(View.INVISIBLE);
	mPlay.setOnClickListener(new OnClickListener(){
		@Override
		public void onClick(View arg0) {
			// TODO Auto-generated method stub
			mPlayer.start();
			mSeekBar.setMax(total);
			mPlay.setVisibility(View.INVISIBLE);
			mPause.setVisibility(View.VISIBLE);
		}
	});

	mPause.setOnClickListener(new OnClickListener(){
		@Override
		public void onClick(View arg0) {
			// TODO Auto-generated method stub
			if(mPlayer.isPlaying()){
				mPlayer.pause();
				mPlay.setVisibility(View.VISIBLE);
				mPause.setVisibility(View.INVISIBLE);
			}
		}
	});

	mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

		@Override
		public void onStopTrackingTouch(SeekBar seekBar) {
			// TODO Auto-generated method stub

		}

		@Override
		public void onStartTrackingTouch(SeekBar seekBar) {
			// TODO Auto-generated method stub

		}

		@Override
		public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
			// TODO Auto-generated method stub
			if(fromUser){
				mPlayer.seekTo(progress);
				mSeekBar.setProgress(progress);
			}
		}
	});

	Thread currentThread  = new Thread(this);
	currentThread.start();

    }

	@Override
	public void run() {
		// TODO Auto-generated method stub
		try {
			while(mPlayer != null){
				int currentPosition = mPlayer.getCurrentPosition();
				Message msg = new Message();
				msg.what = currentPosition;
				threadHandler.sendMessage(msg);
			}
			Thread.sleep(100);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	private Handler threadHandler = new Handler(){
		public void handleMessage(Message msg){
			//super.handleMessage(msg);
			//txt.setText(Integer.toString(msg.what));
			mSeekBar.setProgress(msg.what);
		}
	};

}

 

分享到:
评论
1 楼 玉某我 2011-09-26  

相关推荐

    Android——SeekBar动态显示进度

    在Java代码中,我们可以通过`seekBar.setProgress(int progress)`方法来动态更新SeekBar的进度。同时,可以监听`SeekBar.OnSeekBarChangeListener`事件,当进度改变时触发相关操作: ```java seekBar....

    seekbar带进度条百分百的

    在某些场景下,可能需要根据后台任务的执行进度动态更新Seekbar。这可以通过在异步任务的回调中调用`setProgress()`实现。 6. 无障碍服务支持: 对于无障碍环境,确保SeekBar的使用符合无障碍标准,如提供合适的...

    Android应用源码之(SeekBar 拖动条).zip

    4. **动态更新进度**:在某些场景下,我们可能需要根据其他因素动态更新 SeekBar 的进度。这可以通过调用 `SeekBar.setProgress(int)` 方法来实现,传入想要设置的新进度值。 5. **触摸反馈**:为了提供良好的用户...

    3-8(SeekBar 拖动条).zip

    5. **动态更新 SeekBar**:在某些场景下,我们可能需要根据程序的运行状态动态更新 SeekBar 的最大值或当前进度。这可以通过调用 `setMax(int max)` 和 `setProgress(int progress)` 方法实现。 6. **无障碍功能**...

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

    本篇文章将详细讲解如何在Android应用中使用SeekBar,并实现动态显示进度以及使进度指示器随SeekBar一起移动的效果。 1. **SeekBar的基本使用** SeekBar是Android SDK中的一个继承自ProgressBar的组件。首先,在...

    seekbar 动态移动带百分比TextView

    3. **动态更新 `TextView`**:将计算出的百分比显示在 `TextView` 中,并调整其位置,使其始终跟随 `SeekBar` 的进度条位置。 #### 二、源代码解析 下面是对给定源代码的关键部分进行的解析: ```java private ...

    Android seekbar滑动按钮源码.rar

    2. **进度更新**:在滑动过程中,会根据滑动的距离动态更新 SeekBar 的进度值,并调用 `setProgress` 方法。 3. **绘制逻辑**:源码中还会涉及 SeekBar 的绘制过程,包括进度条、thumb 的绘制,这通常在 `onDraw` ...

    SeekBar动态显示进度条(随时间自动滚动)

    本文将深入探讨如何实现 SeekBar 的动态显示以及自动滚动功能。 首先,我们需要在布局文件中添加 SeekBar: ```xml <SeekBar android:id="@+id/seekBar" android:layout_width="match_parent" android:layout_...

    Android自定义SeekBar滑动条

    - 若需显示当前进度,可以在SeekBar上方或下方添加一个TextView,实时更新其值。通过`SeekBar`的`getProgress()`方法获取当前进度,并将其显示出来。 - 也可以通过`setSecondaryProgress()`方法实现一个辅助进度条...

    自定义seekBar以及使用seekbar实现类似控制音量的效果

    3. **动态更新UI**:在`onProgressChanged()`方法中,我们可以根据当前的进度值更新UI,比如改变TextView的文本内容,使之与SeekBar的进度同步。 ### TextView跟随Thumb移动 要实现TextView跟随Thumb移动的效果,...

    Android自定义View三滑块SeekBar

    本篇文章将深入探讨如何实现一个自定义的三滑块SeekBar,该SeekBar能够灵活地调整滑块数量,并且支持动态设置滑块的值。 首先,我们来理解SeekBar的基本概念。SeekBar是Android系统提供的一个UI组件,它允许用户...

    自定义SeekBar

    这可能是指在布局文件中包含原生SeekBar后,在Activity或Fragment的`onCreate()`或`onViewCreated()`方法中,设置SeekBar的`jumpThreshold`属性为0,或者手动禁用`onProgressChanged()`回调,防止点击时直接更新进度...

    android seekbar自定义带提示

    最后,如果我们还需要更复杂的自定义,比如动态改变提示信息的位置或样式,可能需要在代码中进行更细致的处理。例如,我们可以使用PopupWindow来显示一个浮窗,实时展示滑动时的进度信息。这样,用户不仅可以直观地...

    Android SeekBar弹框.rar

    在Android开发中,SeekBar是一个非常常见的控件,用于让用户通过滑动来选择一个...开发者可以通过研究源码,学习到如何动态更新界面元素以及如何处理用户交互事件,这对于提升Android应用的用户体验设计能力大有裨益。

    自定义 SeekBar

    1. **添加自定义进度指示器**: 可以通过在 SeekBar 上覆盖一个自定义 View 来显示动态的进度指示,比如数字或百分比。 2. **增加触摸区域**: 默认 SeekBar 的可触摸区域只有滑块,但通过自定义布局,可以让用户在...

    SeekBar 实现网络获取图片随thumb滑动,,并位于中间位置

    在这个特定的项目中,我们探讨的是如何将SeekBar与网络图片相结合,使图片随着SeekBars的thumb(滑块)滑动而动态显示,并始终保持在 SeekBar 的中间位置。我们将主要关注以下几个关键知识点: 1. **SeekBar的基本...

    android seekbar 源码

    SeekBar根据这些事件更新进度,并调用`onProgressChanged()`回调通知监听器。 4. **滑动监听器**: SeekBar提供了OnSeekBarChangeListener接口,开发者可以实现该接口来监听滑动事件。包含三个方法:`...

    Android SeekBar调色板背景反色

    在这个特定的场景中,我们利用SeekBar来实现动态调节字体颜色的功能,并且让背景颜色成为字体颜色的反色。这涉及到颜色处理、自定义SeekBar以及UI交互等多个知识点。 首先,我们需要理解颜色的基本概念。在Android...

    自定义SeekBar, 能改变尺寸、颜色、滑块图片、刻度图片、刻度文字和气泡指示器,当滑动时显示带有进度的气泡指示器

    在Seekbar滑动事件中,我们需要监听`OnSeekBarChangeListener`,并在`onProgressChanged()`方法中更新气泡的位置和显示的进度值。为了实现滑动时显示气泡,可以将这个布局作为一个浮动视图(FloatingView)添加到...

Global site tag (gtag.js) - Google Analytics