FlipView - 滑动时移除倾斜

时间:2016-01-05 16:09:07

标签: java android

我有三个带有全屏图像的布局的FlipView。

我设置动画,一切正常,但是当我向右滑动时,我在右侧获得TILT效果(就像图像向左移动20-30px(我看到白色背景)并在中央屏幕上恢复正常)。

不知道我给了他那些属性......

我的动画看起来像这样:

flipin.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/overshoot_interpolator">
    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0"
        android:duration="500"
        />
</set>

flipinreverse.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/overshoot_interpolator">
    <translate
        android:fromXDelta="-100%p"
        android:toXDelta="0"
        android:duration="500"
        />
</set>

flipout.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/overshoot_interpolator">
    <translate
        android:fromXDelta="0"
        android:toXDelta="-100%p"
        android:duration="500"/>
</set>

flipoutreverse.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/overshoot_interpolator">
    <translate
        android:fromXDelta="0"
        android:toXDelta="100%p"
        android:duration="500" />
</set>

用于检测移动的活动代码:

ViewFlipper page;

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.activity_tips_screen);

    page = (ViewFlipper)findViewById(R.id.viewflipper);

    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);

}

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);
}

GestureDetector.SimpleOnGestureListener simpleOnGestureListener
        = new GestureDetector.SimpleOnGestureListener(){

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

        float sensitvity = 100;
        if((e1.getX() - e2.getX()) > sensitvity){
            SwipeLeft();
        }else if((e2.getX() - e1.getX()) > sensitvity){
            SwipeRight();
        }

        return true;
    }

};

GestureDetector gestureDetector
        = new GestureDetector(simpleOnGestureListener);

还有一个问题:

- 我的背景图片太大(1080x1920 .....),位于适用于所有屏幕尺寸的绘图中。它们每个需要2-3兆字节,我能以某种方式缩小它的大小吗?

0 个答案:

没有答案