6

リストに章のリストがあります。ユーザーが章を選択すると、章が展開され、その章のリストにサブトピックが表示されます。ユーザーが特定のサブトピックを選択すると、その内容が新しい画面の webview に読み込まれます。そのすべてがうまくいった。しかし、私はwebviewにいくつかの機能が必要です。ユーザーが webview を上にスライドすると、webview が上に移動し、新しい webview が下から上に画面に表示され (webview のスライドアップアニメーション)、次のサブトピックのコンテンツが表示されます。ユーザーが前のサブトピックのコンテンツで Web ビューを下にスライドしたときのスライド ダウンの場合も同じです。

webview でスライド アップとスライド ダウンのアニメーションを提供する方法を教えてください。ありがとう

4

2 に答える 2

12

アニメーションを webview に適用します。

スライドダウン.xml

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

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

<translate android:fromYDelta="0%p"   
          android:interpolator="@android:anim/accelerate_interpolator"      
    android:toYDelta="100%p" android:duration="2000" />  
</set>

スライドアップ.xml

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

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

<translate android:fromYDelta="100%" 
                   android:toXDelta="0" 
                   android:duration="1000" />
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>

Wbeview startAnimationメソッドを使用する

于 2011-12-08T10:16:13.807 に答える
1

アクティビティに OnGestureListener を実装してください

次のコードを使用します

detector = new GestureDetector(this, this);
WebView1.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            detector.onTouchEvent(event);
            return true;
        }
    });


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

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    float dX = e2.getX() - e1.getX();
    float dY = e1.getY() - e2.getY();
    // check is all completed or return with some condition
    if (Math.abs(dY) < SWIPE_MAX_OFF_PATH && Math.abs(velocityX) >= SWIPE_THRESHOLD_VELOCITY && Math.abs(dX) >= SWIPE_MIN_DISTANCE) {
// logic for left and right
if(dX>0){
}
  elseif(dX<0)
    }   
    return false;
}

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

}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
    // TODO Auto-generated method stub
    return false;
}

@Override
public void onShowPress(MotionEvent e) {
    // TODO Auto-generated method stub

}

@Override
public boolean onSingleTapUp(MotionEvent e) {
    // TODO Auto-generated method stub
    return false;
}

fling メソッドは、x 方向の場合にタッチ イベントを処理し、y 軸でも機能させることができます。

于 2012-07-05T10:27:54.787 に答える