0

私はAndroidを初めて使用するので、viewFlipperを使用せずにAndroid Webviewをスワイプしながら、アニメーションを使用してさまざまなWebページをロードする必要があります。

どうすればこれを行うことができますか?

4

2 に答える 2

2

OnGestureListenerをアクティビティに実装してから、

private static final int SWIPE_THRESHOLD = 100;
private static final int SWIPE_VELOCITY_THRESHOLD = 100;

    public GestureDetector detector;

   detector = new GestureDetector(this);

   webview.setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {

            return detector.onTouchEvent(event);
        }
    });

    @Override
public boolean onTouchEvent(MotionEvent event) {
    // TODO Auto-generated method stub
    return detector.onTouchEvent(event);
}

public boolean onDown(MotionEvent e) { 
    // TODO Auto-generated method stub
    return true; 
} 

    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    boolean result = false;
    try {
        float diffY = e2.getY() - e1.getY();
        float diffX = e2.getX() - e1.getX();
        if (Math.abs(diffX) > Math.abs(diffY)) {
        if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
                if (diffX > 0) {
                    System.out.println("swipe right");


                } else {
                    System.out.println("swipe left");

                }
            }
        } 
    } catch (Exception exception) {
        exception.printStackTrace();
    }
    return result;
}


public void onLongPress(MotionEvent e) {
    // TODO Auto-generated method stub

}
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
        float distanceY) {
    // TODO Auto-generated method stub
    return true;
}
public void onShowPress(MotionEvent e) {
    // TODO Auto-generated method stub

}
public boolean onSingleTapUp(MotionEvent e) {
    // TODO Auto-generated method stub
    return true;
}
于 2013-01-22T07:25:26.847 に答える
2
Animation slideLeftAnim = AnimationUtils.loadAnimation(getBaseContext (), R.anim.righttoleft_in);
mWebView.startAnimation(slideLeftAnim);

animフォルダー内のrighttoleft_in.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >

<translate
    android:duration="200"
    android:fromXDelta="100%p"
    android:toXDelta="0" />

</set>

animフォルダー内のrighttoleft_out.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >

<translate
    android:duration="200"
    android:fromXDelta="0"
    android:toXDelta="-100%p" />

</set>
于 2013-01-22T07:54:47.267 に答える