Скользите вверх и вниз по анимации в Webview в Android
У меня есть список глав в списке. Когда пользователь выбирает главу, которую он расширяет, и подтемы в списке глав. когда пользователь выбирает конкретную подтему, ее содержимое загружается в веб-просмотр на новом экране. все сделано отлично. Но я хочу немного функциональности на веб-сайте. Когда пользователь перемещает веб-представление вверх, веб-представление должно двигаться вверх, и на экране должно появиться новое веб-представление снизу вверх (анимация перемещения вверх по веб-представлению) с содержанием следующего подтемы. То же самое в случае скольжения вниз, когда пользователь скользит вниз по веб-представлению с содержимым предыдущих подтем.
Пожалуйста, помогите, как обеспечить анимацию слайдов вверх и вниз на веб-просмотре. Спасибо
2 ответа
Применить анимацию к веб-просмотру.
Slide down.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>
Slide Up.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
Пожалуйста, используйте 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