当前位置: 首页 > news >正文

楚雄彝族自治州网站建设_网站建设公司_过渡效果_seo优化

如何查看网站是否被降权,网站如何后台管理,昆山住房和城乡建设部网站,本地服务器如何做网站滑动效果是如何产生的#xff1f;滑动一个View从本质上来说就是移动一个View#xff0c;改变其当前的坐标。所以#xff0c;想要滑动一个View#xff0c;就必须监听该View的触摸事件#xff0c;并且根据事件的坐标#xff0c;不断的改变View的坐标从而实现View的滑动。An…滑动效果是如何产生的滑动一个View从本质上来说就是移动一个View改变其当前的坐标。所以想要滑动一个View就必须监听该View的触摸事件并且根据事件的坐标不断的改变View的坐标从而实现View的滑动。Android中的坐标体系Android中的坐标体系分为两种Android坐标系视图坐标系Android坐标系Android坐标系从图中我们可以看的出来**在Android坐标系中以屏幕的左上方作为坐标系的原点从原点向右为X轴的正方向向下为Y轴的正方向**。在触控事件中使用**getRawX()、getRawY()**来获得Android坐标系的坐标视图坐标系视图坐标系视图坐标系主要描述的是该View和该View在父视图中的位置关系和Android坐标系一样也是以原点右方为X正方向以原点下方为Y轴正方向不过这里不是以屏幕的左上角为原点而是**以父视图的左上角为原点**。在触控事件中使用**getX()、getY()**来获得视图坐标系的坐标触控事件在上一篇文章中我们使用到了MotionEvent这个就是触控事件的封装首先看一下MotionEvent中封装的事件常量public static final int ACTION_DOWN 0; //单点触摸按下动作public static final int ACTION_UP 1; //单点触摸离开动作public static final int ACTION_MOVE 2; //单点触摸移动动作public static final int ACTION_CANCEL 3; //触摸动作取消public staiic final int ACTION_OUTSIDE 4; //触摸动作超出边界public static final int ACTION_POINTER_DOWN 5; //多点触摸按下动作public static final int ACTION_POINTER_UP 6; 多点离开动作通常情况下我们会在onTouchEvent(MotionEvent event)方法中通过event.getAction()来获取触控事件的类型。知道Android中的坐标系和触控事件之后我们就可以来实现View的滑动了滑动实现实现滑动有好多种方法但是其思想都是一样的。当触摸到View时记录当前触摸点的坐标然后当手指移动时获取到相对于前一个点的偏移量这样我们就可以通过这个偏移量来进行修改View的坐标这样不断的重复就能实现View的滑动举个例子我们自定义一个View让他来跟随我们手指的移动来移动如图layout方法我们知道在View进行绘制的时候会通过onLayout()方法来设置View的显示位置这里我们通过修改View的left, top, right, bottom四个值来控制View的坐标public boolean onTouchEvent(MotionEvent event) {int x (int) event.getX();int y (int) event.getY();switch (event.getAction()) {case MotionEvent.ACTION_DOWN://记录触摸点的坐标lastX x;lastY y;break;case MotionEvent.ACTION_MOVE://计算偏移量int offsetX x - lastX;int offsetY y - lastY;//在当前位置基础加上偏移量layout(getLeft() offsetX,getTop() offsetY,getRight() offsetX,getBottom() offsetY);break;}return true;}offsetLeftAndRight()和offsetTopAndBottom这个方法就是相当于系统提供的一个对左右、上下移动的API的封装计算好偏移量后调用方法即可offsetLeftAndRight(offsetX);offsetTopAndBottom(offsetY);LayoutParamsLayoutParams保存了View的布局参数所以我们可以改变LayoutParams来动态的改变布局的位置来达到滑动的效果。在程序中使用getLayoutParams()来获取当前View的LayoutParams这里就和上面一样获取到偏移量后通过setLayoutParams来设置该View的LayoutParamsRelativeLayout.LayoutParams params (RelativeLayout.LayoutParams) getLayoutParams();params.leftMargin getLeft() offsetX;params.topMargin getTop() offsetY;setLayoutParams(params);需要注意一点通过getLayoutParams()获取LayoutParams的时候要根据View的父布局的类型来设置当然前提还要有一个父布局。还有就是我们可以使用ViewGroup.MarginLayoutParams这样就不用考虑父布局是什么了scrollTo、scrollBy在View中系统还提供了scrollTo、scrollBy两种方式来改变一个View的位置。其中scrollTo表示移动到一个具体的坐标点scrollBy表示移动的偏移量其实在scrollBy内部也是调用的scrollTo。和前面的方式一样获取到偏移量后调用scrollBy来移动view可是当我们运行程序拖动View发现View并没有移动这是因为scrollTo、scrollBy方法移动的是View的内容如果在ViewGroup中使用scrollTo、scrollBy的滑那么移动的就是View了但是如果在View中使用那么移动的将是View里面的内容比如TextView那么移动的就是文本了。所以通过上面的分析我们把代码改为如下:((View)getParent()).scrollBy(offsetX, offsetY);再次运行程序我们会发现动是动了但是在乱动。因为这里我们其实是在相反的方向移动(这里由于篇幅限制感兴趣的同学自行查找一下资料)我们把偏移量改为负的之后就会发现滑动正常了。Scroller首先来想一个场景我们需要让一个Button向右面移动100个像素如果我们用scrollTo/scrollBy的话那么该View就会很突兀的移动到该点没有过程而Scroller则是可以实现平滑的过渡效果的下面我们把上面跟随手指滑动的例子改一下我们在松开手指后View自动回到原点(屏幕左上角)。使用Scroller需要三个步骤初始化通过构造方法即可 Scroller mScroller new Scroller(context);重写computeScroll()方法实现滑动startScroll()开启滑动代码如下case MotionEvent.ACTION_UP:View viewGroup (View) getParent();mScroller.startScroll(viewGroup.getScrollX(),viewGroup.getScrollY(),-viewGroup.getScrollX(),-viewGroup.getScrollY());invalidate();break;----------------------------------------------------------------Overridpublic void computeScroll() {super.computeScroll();if (mScroller.computeScrollOffset()) {((View) getParent()).scrollTo(mScroller.getCurrX(), mScroller.getCurrY());invalidate();}}当我们手指抬起来的时候开启Scroller滑动获取到当前view的移动距离然后我们把需要移动的偏移量设置为相反数就ok最后调用invalidate来通知重绘从而调用computeScroll()方法。运行程序如下现在就把这几种View的滑动都说完了自己动手写一下感触良多。最后爱生活爱小丽爱Android
http://www.lebaoying.cn/news/83017.html

相关文章:

  • 做的好的网站着陆页html网页设计大作业
  • 下载图片的网站建设网站5g空间
  • 开通qq空间申请网址网站建设seo 视频教程
  • 图库下载网站源码潍坊网站建设优化
  • 网站运营职责什么网可以接外贸订单
  • 网站不想被收录linux做网站要求
  • 无忧网站建设哪家好商城app制作教程
  • 蚌埠做网站多少钱怎样进网站空间
  • 深圳做网站多少费用营销型网站深度网
  • 南沙网站建设公司网站怎么收费的
  • wordpress 电影模版百度seo优化教程
  • 福州企业网站建站系统建设企业网站
  • 自己买服务器建设网站购物网站排版设计
  • 佛山网站建设收费标准深圳市易百讯科技有限公司
  • 厦门网站设计建湖做网站哪家好
  • 网站流量依赖率温州专业做网站
  • 企业如何在自己的网站上做宣传网站建设前景怎么样
  • 网站建设最快多长时间wordpress制作表单
  • 织梦做的网站首页被篡改常州网站建设 光龙
  • 文本怎样做阅读链接网站选择热门网站做推广的原因
  • 青州哪里做网站怎么添加网站备案号
  • 苏州建网站的公司一站式服务福建西南建设有限公司网站
  • 做农村网站多少钱海东高端网站建设公司
  • 国外优质网站网站页面好了怎么做后端
  • 网站建设总体情况网站建设辶金手指排名十一
  • 上海网站制作与推广旅游村庄网站建设方案
  • 网站怎么做关键词怎么优化石家庄工程职业学院
  • 网站视频上传怎么做能答题做试卷的网站
  • 简单大气的企业网站wap手机
  • 网站首页不见怎么做wordpress 腾讯cos