Android implementa el deslizamiento hacia la izquierda y hacia la derecha, y hay un punto debajo. ¿Es viewflipper?
ViewPager se puede implementar, pero si es un número fijo, no cambiará. Se puede realizar directamente a través de un diseño personalizado y es muy conveniente de usar.
/**
* Imita WorkSapce en Launcher, ¿puedes deslizarte hacia la izquierda y hacia la derecha para cambiar de pantalla? *
* Blog de @author Yao.GUET: puteScroll ()
{
if (mScroller.computeScrollOffset())
{
scrollTo(mScroller.getCurrX(), mScroller. getCurrY( ));
postInvalidate();
}
}
@Override
público booleano onTouchEvent(evento MotionEvent)
{
if (!StaticVariable.controlFlag)
{
return super.onTouchEvent(evento);
p>}
if (mVelocityTracker == null)
{
mVelocityTracker = VelocityTracker.obtain();
}
mVelocityTracker.addMovement(evento);
final int action = event.getAction();
final float x = event.getX ();
// final float y = event.getY();
cambiar (acción)
{
caso MotionEvent .ACTION_DOWN:
if (!mScroller.isFinished())
{
mScroller.abortAnimation();
} p>
mLastMotionX = x;
break;
case MotionEvent.ACTION_MOVE:
int deltaX = (int)(mLastMotionX - x);
mLastMotionX = x;
scrollBy(deltaX, 0);
break;
case MotionEvent.ACTION_UP:
velo final de VelocityTracker
cityTracker = mVelocityTracker;
velocidadTracker.computeCurrentVelocity(1000);
int velocidadX = (int)velocityTracker.getXVelocity();
if (velocityX > SNAP_VELOCITY && mCurScreen > 0)
{
// Lanza lo suficiente para moverte hacia la izquierda
snapToScreen(mCurScreen - 1);
} p>
else if (velocityX < -SNAP_VELOCITY && mCurScreen < getChildCount() - 1)
{
// Lanza lo suficiente para moverte hacia la derecha
snapToScreen(mCurScreen + 1);
}
else
{
snapToDestination();
}
if (mVelocityTracker != null)
{
mVelocityTracker.recycle();
mVelocityTracker = null;
}
mTouchState = TOUCH_STATE_REST;
descanso;
caso MotionEvent.ACTION_CANCEL:
mTouchState = TOUCH_STATE_REST;
romper;
}
devolver verdadero;
}
@Override
público booleano onInterceptTouchEvent(MotionEvent ev)
{
if (!StaticVariable.controlFlag)
{
return super.onInterceptTouchEvent(ev)
;
}
if (Configure.isMove)
return false;//Interceptar distribución a controles secundarios
final int action = ev.getAction();
if ((action == MotionEvent.ACTION_MOVE) && (mTouchState != TOUCH_STATE_REST))
{
devuelve verdadero;
}
final float x = ev.getX();
// final float y = ev.getY();
cambiar (acción)
{
caso MotionEvent.ACTION_MOVE:
final int xDiff = (int)Math.abs(mLastMotionX - x);
if (xDiff > mTouchSlop)
{
mTouchState = TOUCH_STATE_SCROLLING;
}
descanso;
caso MotionEvent.ACTION_DOWN:
mLastMotionX = x;
// mLastMotionY = y;
mTouchState = mScroller.isFinished() ? ;
descanso;
caso MotionEvent.ACTION_CANCEL:
caso MotionEvent.ACTION_UP:
mTouchState = TOUCH_STATE_REST;
break;
}
return mTouchState != TOUCH_STATE_REST;
}
public void setPageListener(PageListener pageListener)
{
this.pageListener = pageListener;
}
interfaz pública PageListener
{
página vacía (página int);
>
}
}