怎么在Android中使用ScrollView实现一个下拉弹回动画效果

  介绍

本篇文章给大家分享的是有关怎么在Android中使用ScrollView实现一个下拉弹回动画效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Android是什么

Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。

一。自定义视图的设计代码

package  com.lwz.mathbox.weight;      import  android.content.Context;   import  android.graphics.Rect;   import  android.util.AttributeSet;   import  android.view.MotionEvent;   import  android.view.View;   import  android.view.animation.TranslateAnimation;   import  android.widget.ScrollView;/* *   ,*实现了可以有下拉弹回的滚动视图的自定义的观点   ,*/public  class  SpringScrollView  extends  ScrollView  {      private 才能View 内;//,孩子      private 才能float  y;//,坐标      private 才能Rect  normal =, new 矩形();//,矩形空白      public 才能;SpringScrollView (Context 上下文,AttributeSet  attrs), {   ,,,超级(上下文,attrs);   ,,}      ,/* * *   ,,*,根据,XML 生成视图工作完成。该函数在生成视图的最后调用,在所有子视图添加完之后只即使子类覆盖了,onFinishInflate   ,,*,方法,也应该调用父类的方法,使该方法得以执行。   ,,*/@Override才能   protected 才能;void  onFinishInflate (), {   ,,,if  (getChildCount(),祝辞,0),{   ,,,,,inner =, getChildAt(0);//,获取其孩子   ,,,}   ,,}      @Override才能   public 才能;boolean  onTouchEvent (MotionEvent  ev), {   ,,,if  (inner  !=, null), {   ,,,,,commOnTouchEvent (ev);   ,,,}   ,,,return  super.onTouchEvent (ev);   ,,}      ,/* * *   ,,*,触摸事件   ,,*   ,,*,@param 电动车   ,,*/public 才能;void  commOnTouchEvent (MotionEvent  ev), {   ,,,int  action =, ev.getAction ();   ,,,switch (行动),{   ,,,,,case  MotionEvent.ACTION_DOWN:   ,,,,,,,y =, ev.getY();//,获取点击y坐标   ,,,,,,,休息;   ,,,,,case  MotionEvent.ACTION_UP:   ,,,,,,,if  (isNeedAnimation ()), {   ,,,,,,,,,动画();   ,,,,,,,}   ,,,,,,,休息;   ,,,,,case  MotionEvent.ACTION_MOVE:   ,,,,,,,final  float  preY =, y;   ,,,,,,,float  nowY =, ev.getY ();   ,,,,,,,int  deltaY =, (int), (preY 作用;nowY);//,获取滑动距离      ,,,,,,,y =, nowY;   ,,,,,,,//,当滚动到最上或者最下时就不会再滚动,这时移动布的局   ,,,,,,,if  (isNeedMove ()), {   ,,,,,,,,,if  (normal.isEmpty ()), {   ,,,,,,,,,,,//,填充矩形,目的:就是告诉:我现在已经有了,你松开的时候记得要执行回归动画。   ,,,,,,,,,,,normal.set (inner.getLeft (),, inner.getTop (),   ,,,,,,,,,,,,,,,inner.getRight (),, inner.getBottom ());   ,,,,,,,,,}   ,,,,,,,,,//,移动布的局   ,,,,,,,,,inner.layout (inner.getLeft (),, inner.getTop(),安康;deltaY /, 2,   ,,,,,,,,,,,,,inner.getRight (),, inner.getBottom(),安康;deltaY /, 2);   ,,,,,,,}   ,,,,,,,休息;      ,,,,,默认值:   ,,,,,,,休息;   ,,,}   ,,}      ,/* * *   ,,*,开启动画移动   ,,*/public 才能;void 动画(),{   ,,,//,开启移动动画   ,,,TranslateAnimation  ta =, new  TranslateAnimation (0, 0, inner.getTop (),   ,,,,,,,normal.top);   ,,,ta.setDuration (300);   ,,,inner.startAnimation (ta);   ,,,//,设置回到正常的布局位置   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在Android中使用ScrollView实现一个下拉弹回动画效果