Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将onScroll与viewFlipper一起使用_Android - Fatal编程技术网

Android 将onScroll与viewFlipper一起使用

Android 将onScroll与viewFlipper一起使用,android,Android,我想使用与iPhone gallery效果相同的效果。i、 e当我滚动一个图像时,下一个图像开始出现,并相对于前一个图像向内移动 我想使用这个在视图中的翻转器,直到现在我可以移动第一个图像,但我看不到下一个图像 public class IphoneAnimationActivity extends Activity implements OnGestureListener { private static final int SWIPE_THRESHOLD_VELOCITY = 10

我想使用与iPhone gallery效果相同的效果。i、 e当我滚动一个图像时,下一个图像开始出现,并相对于前一个图像向内移动

我想使用这个在视图中的翻转器,直到现在我可以移动第一个图像,但我看不到下一个图像

public class IphoneAnimationActivity extends Activity implements
    OnGestureListener {

private static final int SWIPE_THRESHOLD_VELOCITY = 1000;
GestureDetector gestureScanner;
ViewFlipper flipper;
View v;
ImageView imageView1;
ImageView imageView2;

LayoutInflater inflate;

Animation slideOutRight;
Animation slideInLeft;
Animation slideOutLeft;
Animation slideInRight;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    flipper = (ViewFlipper) findViewById(R.id.viewFlipper1);

    inflate = getLayoutInflater();

    v = inflate.inflate(R.layout.image_view, null);

    View x = v;
    flipper.addView(x);

    slideOutRight = AnimationUtils.loadAnimation(this,
            R.anim.slide_right_out_photocards);
    slideInRight = AnimationUtils.loadAnimation(this,
            R.anim.slide_right_in_photocards);

    slideOutLeft = AnimationUtils.loadAnimation(this,
            R.anim.slide_left_out_photocards);
    slideInLeft = AnimationUtils.loadAnimation(this,
            R.anim.slide_left_in_photocards);

    gestureScanner = new GestureDetector(this);

    flipper.setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            return gestureScanner.onTouchEvent(event);
        }
    });

}

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
        float velocityY) {

    // right to left swipe
    if (e1.getX() - e2.getX() > 0
            && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
        swipeLeft();
    }
    // left to right swipe
    else if (e2.getX() - e1.getX() > 0
            && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
        swipeRight();
    }
    return false;
}

private void swipeRight() {

    flipper.setInAnimation(slideInRight);
    flipper.setOutAnimation(slideOutRight);

    View y = inflate.inflate(R.layout.image_view, null);
    flipper.addView(y);
    flipper.setDisplayedChild(1);
    flipper.removeViewAt(0);
    // flipper.showNext();

}

private void swipeLeft() {

    flipper.setInAnimation(slideInLeft);
    flipper.setOutAnimation(slideOutLeft);

    View y = inflate.inflate(R.layout.image_view, null);
    flipper.addView(y);
    flipper.setDisplayedChild(1);
    flipper.removeViewAt(0);
}

@Override
public boolean onDown(MotionEvent e) {
    return false;
}

@Override
public void onLongPress(MotionEvent e) {

}

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

    if((e1.getX() - e2.getX()) > 0)
    {
        flipper.scrollBy(10, 0);            
        return true;
    }
    else if ((e1.getX() - e2.getX()) < 0) {
        flipper.scrollBy(-10, 0);           
        return true;
    }
    else            
    {

    }
    return false;
}

@Override
public void onShowPress(MotionEvent e) {

}

@Override
public boolean onSingleTapUp(MotionEvent e) {

    return false;
}

public boolean onTouchEvent(MotionEvent event) {
    return gestureScanner.onTouchEvent(event);
}
公共类IphoneAnimationActivity扩展活动实现
OnEstureListener{
专用静态最终整数滑动\u阈值\u速度=1000;
手势检测器手势扫描器;
视图翻转器翻转器;
观点五;
ImageView imageView1;
ImageView imageView2;
更平坦的充气;
动画滑出;
动画幻灯片左;
动画滑出;
动画幻灯片;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
flipper=(ViewFlipper)findViewById(R.id.viewFlipper1);
充气=GetLayoutFlater();
v=充气。充气(R.layout.image_视图,空);
视图x=v;
flipper.addView(x);
SlideOutTright=AnimationUtils.loadAnimation(此,
R.anim.滑出(右滑出(光卡);
slideInRight=AnimationUtils.loadAnimation(此,
R.anim.滑动(右滑入光卡);
SlideOutlet=AnimationUtils.loadAnimation(此,
R.anim.滑出(左滑出(光卡);
slideInLeft=AnimationUtils.loadAnimation(此,
R.anim.滑盖(左滑盖)(在光卡中);
gestureScanner=新的GestureDetector(此);
flipper.setOnTouchListener(新的OnTouchListener(){
公共布尔onTouch(视图v,运动事件){
返回gestureScanner.onTouchEvent(事件);
}
});
}
公共布尔onFling(运动事件e1、运动事件e2、浮点速度X、,
浮动速度y){
//从右向左滑动
如果(e1.getX()-e2.getX()>0
&&Math.abs(velocityX)>滑动阈值(速度){
swipeLeft();
}
//从左向右滑动
如果(e2.getX()-e1.getX()>0
&&Math.abs(velocityX)>滑动阈值(速度){
swipeRight();
}
返回false;
}
私人无效swipeRight(){
flipper.setInAnimation(向右滑动);
flipper.setOutAnimation(滑动触发);
视图y=充气。充气(R.layout.image\u视图,空);
flipper.addView(y);
flipper.setDisplayedChild(1);
flipper.removeViewAt(0);
//flipper.showNext();
}
私有无效swipeLeft(){
flipper.setInAnimation(滑动左);
flipper.setOutAnimation(SlideOutlet);
视图y=充气。充气(R.layout.image\u视图,空);
flipper.addView(y);
flipper.setDisplayedChild(1);
flipper.removeViewAt(0);
}
@凌驾
公共布尔onDown(运动事件e){
返回false;
}
@凌驾
公开无效在线新闻(运动事件e){
}
@凌驾
公共布尔onScroll(MotionEvent e1、MotionEvent e2、浮点距离X、,
浮动距离){
如果((e1.getX()-e2.getX())>0)
{
flipper.scrollBy(10,0);
返回true;
}
else如果((e1.getX()-e2.getX())<0){
flipper.scrollBy(-10,0);
返回true;
}
其他的
{
}
返回false;
}
@凌驾
在ShowPress上公开作废(运动事件e){
}
@凌驾
公共布尔onSingleTapUp(运动事件e){
返回false;
}
公共布尔onTouchEvent(运动事件){
返回gestureScanner.onTouchEvent(事件);
}

}

也许您应该使用widget,或者使用android兼容包?它们具有您想要的功能。

从android support lib v13开始,ViewPager+PageTransformer就可以使用,并且可能实现以下功能:

我知道我可以使用flipper,但我想使用flipper,因为我当前的应用程序正在使用flipper,此时使用gallery更改它不是一个好主意。请给我提些建议。。