介绍
本篇文章给大家分享的是有关怎么在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实现一个下拉弹回动画效果