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

如果 x 方向,fling 方法将处理触摸事件,您也可以使其在 y 轴上工作

于 2012-07-05T10:27:54.787 回答