设为首页 加入收藏

TOP

Android侧边栏的自定义实现(附源码)(三)
2015-02-25 16:15:11 来源: 作者: 【 】 浏览:85
Tags:Android 侧边 定义 实现 源码
VelocityTracker() {?
? ? ? 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);
? ? ? }
?
? }
}


三、效果与说明


侧滑菜单在很多应用中都会见到,其实实现起来原理非常简单,只不过是要有一大堆的判断,你要判断手指移动的距离和方向,还要判断手指移动的速度。所以代码写出来可能有点儿多,但是原理了解了就不难了。另外,为了滚动效果肉眼可以看到,加了个showMenuAsyncTask类,它在滚动视图的过程中,每sleep(40)然后再滚动,当然,这里时间还可以改到一此,效果会更加好。


Android侧边栏的自定义实现(附源码)


首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android仿UC浏览器左右上下滚动功.. 下一篇jQuery实现相同内容合并单元格

评论

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