0
我在我的活动中使用三个viewflippers,每个人都从服务器加载图片。他们三人的动画效果很好。重点是我也试图刷他们每一个。我实现了一个手势检测,这里是代码:在浏览器上滑动冲突
package com.erc.AndroidViewFlipper;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ViewFlipper;
public class AndroidViewFlipperActivity extends Activity {
ViewFlipper page,page2;
Animation animFlipInForeward;
Animation animFlipOutForeward;
Animation animFlipInBackward;
Animation animFlipOutBackward;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
page = (ViewFlipper)findViewById(R.id.flipper);
page2 = (ViewFlipper)findViewById(R.id.flipper2);
animFlipInForeward = AnimationUtils.loadAnimation(this, R.anim.flipin);
animFlipOutForeward = AnimationUtils.loadAnimation(this, R.anim.flipout);
animFlipInBackward = AnimationUtils.loadAnimation(this, R.anim.flipin_reverse);
animFlipOutBackward = AnimationUtils.loadAnimation(this, R.anim.flipout_reverse);
page.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.flipin));
page.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.flipout));
page.startFlipping();
page.setAutoStart(true);
page2.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.flipin));
page2.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.flipout));
page2.startFlipping();
page2.setAutoStart(true);
}
private void SwipeRight(){
page.setInAnimation(animFlipInBackward);
page.setOutAnimation(animFlipOutBackward);
page.showPrevious();
}
private void SwipeLeft(){
page.setInAnimation(animFlipInForeward);
page.setOutAnimation(animFlipOutForeward);
page.showNext();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
return gestureDetector.onTouchEvent(event);
}
SimpleOnGestureListener simpleOnGestureListener
= new SimpleOnGestureListener(){
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
float sensitvity = 50;
if((e1.getX() - e2.getX()) > sensitvity){
SwipeLeft();
}else if((e2.getX() - e1.getX()) > sensitvity){
SwipeRight();
}
return true;
}
};
GestureDetector gestureDetector
= new GestureDetector(simpleOnGestureListener);
}
的问题是,无论我触摸屏幕,第一viewflipper将刷卡。我想要的是,当我触摸一个特定的视图片时,只有被触摸的片段会被滑动。请帮忙吗?
我编辑了我的答案,但没有解决问题 –
查看我更新的答案。 – cybersam
不幸的是,它没有工作,我更新了我的代码,我在你的答案中改变了唯一的事情是我在方法checkTouchedViewFlipper中初始化了vfRect(Rect vfRect = null)。我仍然无法滑动每个viewflipper –