SeekBar的基本使用方法

SeekBar的基本使用方法

a)         什么是SeekBar

b)         使用SeekBar的步骤: 

 i.  在布局文件当中声明SeekBar:

<SekBar android:id=”@+id/seekbarld”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”/>

  ii. 实现OnSeekBarChangeListener接口,覆写方法

方法调用:

在拖动条的任何地方按下鼠标时先调用onStartTrackingTouch一次,再调用onProgressChanged一次。

以后每拖动一下调用onProgressChanged一次。松开鼠标时调用onStopTrackingTouch一次

//当拖动条发生变化时调用该方法

public void onProgressChanged(SeekBar seekBar,int progress,Boolean fromUser)

{System.out.println(progress);}

//当用户开始滑动滑块时调用该方法(即按下鼠调用一次)

public void onStartTrackingTouchSeekBar seekBar{System.out.println(“start:=>”+seekBar.getProgress());}

//当用户结束对滑块滑动时,调用该方法(即松开鼠标)

 public void onStopTrackingTouch (SeekBar seekBar)

{System.out.println(“stop:=>”+seekBar.getProgress());}}

   iii.   SeekBar绑定监听器:

seekBar.SetOnSeekBarChangeListener(new SeekBarListener());实现接口时用this代替new SeekBarListener());

案例项目:

//设置该拖动条的最大值,默认情况下为O


        seekBar.setMax(100);  

 //设置拖动条当前值

SeekBar.setProgress(10);

 

发布了65 篇原创文章 · 获赞 3 · 访问量 12万+
展开阅读全文

拖动seekbar后获取的seekbar.getProgress()值有一些误差如何解决

01-17

private void setSeerBar() { mMax = mediaPlayer.getDuration(); seekbar.setMax(mMax); seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(final SeekBar seekBar, int progress, boolean fromUser) { currentProgress_seek = seekbar.getProgress(); currentProgress_media = mediaPlayer.getCurrentPosition(); long timelong = currentProgress_seek / 1000; hour_ = timelong / 60 / 60; minute_ = (timelong / 60) % 60; second_ = timelong % 60; Log.e("nowtime", "currenttime:" + hour_ + ":" + minute_ + ":" + second_); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { if (mediaPlayer != null) { mMax = mediaPlayer.getDuration(); mediaPlayer.seekTo(currentProgress_seek); currentProgress_media = mediaPlayer.getCurrentPosition(); currentProgress_seek = seekbar.getProgress(); long timelong = currentProgress_media / 1000; hour_ = timelong / 60 / 60; minute_ = (timelong / 60) % 60; second_ = timelong % 60; Log.e("nowtime", "stoptime:" + hour_ + ":" + minute_ + ":" + second_); Log.e("SeekBarState", "stopprovess" + seekbar.getProgress()); Message message = new Message(); handler.sendEmptyMessage(message.what); } } }); } 然后打印出来的结果是: currenttime:0:49:14 01-11 11:55:54.687 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:49:15 01-11 11:55:55.691 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:49:16 01-11 11:55:56.120 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:42:15 01-11 11:55:56.213 10778-10778/com.example.bmvod.film E/nowtime: stoptime:0:42:15 01-11 11:55:56.688 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:42:10 01-11 11:55:57.688 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:42:11 01-11 11:55:58.687 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:42:12 01-11 11:55:59.689 10778-10778/com.example.bmvod.film E/nowtime: currenttime:0:42:13 这样的,, 停止的时间是42分15秒,然后下一个打印应该是42分16秒,但是打印结果是42分10秒 这个误差是如何产生的?怎么解决呢?。。 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览