您的位置:首页 > 其它

andoroid实现滑动上下滑动列表的时候动画隐藏其他视图

2015-01-30 17:38 561 查看
1.准备手势处理

LeftGesture leftGesture;

GestureDetector mGestureDetector;

final int MIN_DINTANCE_MODELY = 75;

final float MIN_DINTANCE_ORDERY = 0.1f;

Animation up, down, header_up, header_down;

2.初始化手势和动画等行为

leftGesture = new LeftGesture();// 手势监听类

mGestureDetector = new GestureDetector(getActivity(), leftGesture);

up = AnimationUtils.loadAnimation(getActivity(), R.anim.up);

down = AnimationUtils.loadAnimation(getActivity(), R.anim.down);

header_up = AnimationUtils.loadAnimation(getActivity(), R.anim.header_up);

header_down = AnimationUtils.loadAnimation(getActivity(), R.anim.header_down);

3.注册手势

class LeftGesture extends SimpleOnGestureListener {

@Override

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {

if (e1 != null && e2 != null)

if ((e1.getY() - e2.getY()) > MIN_DINTANCE_MODELY) {

// 向上滑动

if ((e1.getY() - e2.getY()) > MIN_DINTANCE_ORDERY
&& Math.abs(distanceY) > MIN_DINTANCE_ORDERY) {

if (header.getVisibility() == View.VISIBLE) {

header.startAnimation(header_down);

header.setVisibility(View.GONE);

}

if (radioGroup.getVisibility() == View.VISIBLE) {

radioGroup.startAnimation(down);

radioGroup.setVisibility(View.GONE);

}

}

} else if ((e2.getY() - e1.getY()) > MIN_DINTANCE_MODELY) {

// 向下滑动

if ((e2.getY() - e1.getY()) > MIN_DINTANCE_ORDERY&& Math.abs(distanceY) > MIN_DINTANCE_ORDERY) {

if (header.getVisibility() == View.GONE) {

header.startAnimation(header_up);

header.setVisibility(View.VISIBLE);

}

if (radioGroup.getVisibility() == View.GONE) {

radioGroup.startAnimation(up);

radioGroup.setVisibility(View.VISIBLE);

}

}

}

return false;

}

}

4.准备的一些动画xml

up.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate

android:duration="300"

android:fromYDelta="100.0%"

android:toYDelta="0.0" />

</set>

down.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate

android:duration="300"

android:fromYDelta="0.0"

android:toYDelta="100.0%" />

</set>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐