设为首页 加入收藏

TOP

Android仿UC浏览器左右上下滚动功能(附源码)(三)
2015-02-25 16:15:13 来源: 作者: 【 】 浏览:78
Tags:Android 浏览器 左右 上下 滚动 功能 源码
aseVelocityTracker() {?
? ? ? if(null != mVelocityTracker) {?
? ? ? ? ? mVelocityTracker.clear();?
? ? ? ? ? mVelocityTracker.recycle();?
? ? ? ? ? mVelocityTracker = null;?
? ? ? }?
? }?
? /**
? *
? *:模拟动画过程,让肉眼能看到滚动的效果
? *
? */
? class showMenuAsyncTask extends AsyncTask
? {
?
? ? ? @Override
? ? ? protected Integer doInBackground(Integer... params)
? ? ? {
? ? ? ? ? int leftMargin = menuParams.leftMargin;
? ? ? ? ? while (true)
? ? ? ? ? {// 根据传入的速度来滚动界面,当滚动到达左边界或右边界时,跳出循环。
? ? ? ? ? ? ? leftMargin += params[0];
? ? ? ? ? ? ? if (params[0] > 0 && leftMargin > 0)
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? leftMargin= 0;
? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? } else if (params[0] < 0 && leftMargin <-menuParams.width)
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? leftMargin=-menuParams.width;
? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? }
? ? ? ? ? ? ? publishProgress(leftMargin);
? ? ? ? ? ? ? try
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? Thread.sleep(40);//休眠一下,肉眼才能看到滚动效果
? ? ? ? ? ? ? } catch (InterruptedException e)
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? ? return leftMargin;
? ? ? }
? ? ? @Override
? ? ? protected void onProgressUpdate(Integer... value)
? ? ? {
? ? ? ? ? menuParams.leftMargin = value[0];
? ? ? ? ? menuLayout.setLayoutParams(menuParams);
? ? ? }
?
? ? ? @Override
? ? ? protected void onPostExecute(Integer result)
? ? ? {
? ? ? ? ? menuParams.leftMargin = result;
? ? ? ? ? menuLayout.setLayoutParams(menuParams);
? ? ? }
?
? }
}


三、原理与说明


原理 :


1、将ScrollView的触摸事件注册到LinearLayout中去。(LinearLayout中包含了ScrollView,不懂看布局)


2、首先判断手势是想要左右运动还是上下运动,如果是左右运动,那么LinearLayout得到触摸事件,即函数OnTouch返回true;如果想上下运动,即函数OnTouch返回false;


这里要注意的是,手势判断只一次,什么意思呢?就是说你第1次按下,到你一直按着,这中间只判断一次你的手势想要做的运动。


3、手指离开屏幕后,再来恢复所有的参数。


Android仿UC浏览器左右上下滚动功能(附源码) ?


首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇为你的 Android 应用增加本地搜索.. 下一篇Android侧边栏的自定义实现(附源..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: