时移拖动进度条不流畅
来源:互联网 发布:冬季裤子不要淘宝款 编辑:程序博客网 时间:2024/04/27 10:28
时移拖动进度条不流畅
1,在android 5.1系统上由于系统上报keydown事件的速度相比android 4.4系统慢,导致apk拖动进度条时,进度条变化不是很流畅,而是一抖一抖的进度变化。为了能够在按下down事件时,进度条能够流畅变化,所要做的是模拟系统keydown事件,加快keydown事件的频率,且拖动进度条。
2,思路:由于keydown 和 keyup 事件是成对出现,当按下遥控不动时,系统会不断向应用层抛keydown事件,这个时候标记keydown事件,isStartMove 置为 true,当手松开遥控按键,响应到keyup事件,isStartMove置为false。当 isStartMove为true时,用handler实现一个定时器,每隔 50ms去刷新进度条的长度,通过moveAddRunnable对象实现拖动进度条的效果。当isStartMove 为false时,将handler 消息队列中的所有刷新进度条的 moveAddRunnable 对象移出队列。
mPb.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if(event.getAction() == KeyEvent.ACTION_DOWN ){// KeyDown事件入口, if(keyCode == KeyEvent.KEYCODE_DPAD_LEFT){// 进度条往左边tuo'dong if(!isStartMove){ handleMove(false); isStartMove = true; } return true; }else if(keyCode == KeyEvent.KEYCODE_DPAD_RIGHT){// 进度条往右边拖动 if(!isStartMove){ isStartMove = true; handleMove(true); } return true; } } if(event.getAction() == KeyEvent.ACTION_UP){ isStartMove = false; mHandler.removeCallbacks(moveAddRunnable);//移出所有runnable mHandler.removeCallbacks(moveSubRunnable); } return false; } });
private Runnable moveAddRunnable = new Runnable() {//向右拖动进度条 @Override public void run() { int duration = mVideoView.getDuration(); Log.i(TAG,"moveAddRunnable -------------------"); int progress = (int) (mPb.getProgress()+ duration * 0.005); mPb.setProgress(progress); mHandler.postDelayed(moveAddRunnable,50); } }; private Runnable moveSubRunnable = new Runnable() {//向左拖动进度条 @Override public void run() { int duration = mVideoView.getDuration(); Log.i(TAG,"moveSubRunnable -------------------"); int progress = (int) (mPb.getProgress()- duration * 0.005); mPb.setProgress(progress); mHandler.postDelayed(moveSubRunnable,50); } }; private void handleMove(boolean isAdd) { if(isAdd){ mHandler.post(moveAddRunnable); }else { mHandler.post(moveSubRunnable); } }
阅读全文
0 0
- 时移拖动进度条不流畅
- 解决系统窗口拖动不流畅的问题
- Android中listview内容较多时拖动不流畅问题
- 可拖动分隔栏在firefox中拖动不流畅问题!
- Android 修复ijkPlayer进行m3u8 hls流播放时seek进度条拖动不准确的问题
- iphone滚动不流畅
- jQuery拖动进度条
- Android-SeekBar(拖动进度条)
- 可拖动的进度条
- Gallery在有OnItemSelectedListener时滑动不流畅的问题解决
- Gallery在有OnItemSelectedListener时滑动不流畅的问题解决
- NestedScrollView嵌套RecyclerView时滑动不流畅问题的解决办法
- NestedScrollView嵌套RecyclerView时滑动不流畅问题的解决办法
- NestedScrollView嵌套RecyclerView时滑动不流畅问题的解决办法
- NestedScrollView嵌套RecyclerView时滑动不流畅问题的解决办法
- NestedScrollView嵌套RecyclerView时滑动不流畅问题的解决办法
- 总是这么的不流畅
- android listview 刷新不流畅
- 实战
- python--模拟POST登陆请求(待优化)
- js实现四则运算
- tx1调试车辆检测遇到的问题
- 关于前段时间抓包镜像端口的数据,发现板卡linux抓到的数据比在windows wireshark抓到的数据多4个字节的问题!
- 时移拖动进度条不流畅
- 原子操作
- SQL中拼日期
- 关于c++预处理命令的一点总结
- IntelliJ IDEA配置maven
- 算法导论程序31--红黑树的插入(Python)
- <Shader>简单的纹理坐标滚动(水波模型:脚本控制)
- Redis技术之旅十 高并发问题
- 数据结构---表达式求值