2010-07-08 3 views
4

Я должен добиться этого прокрутки Touch на ViewFlipper. Например. У меня два изображения. Во-первых, ViewFlipper показывает первое изображение. Теперь я бросаю взгляд справа налево. Первый вид изображения Выдвиньте влево и второй слайд влево. Я могу достичь этого. Post. Но я хочу прокрутить изображение. То есть, в событии Action_Move я хочу сделать Touch Scroll. Например, когда я перемещаю прикосновение справа налево, он бросает все движения касания. в это время на выходе должны отображаться оба изображения.Touch Scroll on View Flipper в Android?

Как это сделать? Что мне нужно для измерения уровней экрана (высота & ширина). Примеры кодов более полезны.

ответ

0

Если вам нужно обнаружить свиток только на viewflipper, не занимая весь экран, а затем попробуйте ниже

gestureDetector = new GestureDetector(new MyGestureDetector()); 

viewFlipper.setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if (gestureDetector.onTouchEvent(event)) { 
       return false; 
      } 
      return true; 
     } 
    }); 

и MyGestureDetector будет такой же, как и в http://www.codeshogun.com/blog/2009/04/16/how-to-implement-swipe-action-in-android/

1
package com.appaapps.flipper; 

import android.app.Activity; 
import android.content.Context; 
import android.graphics.*; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.widget.ViewFlipper; 
//------------------------------------------------------------------------------ 
// Flipper - Philip R Brenan at gmail.com 
//------------------------------------------------------------------------------ 
public class FlipperActivity extends Activity { 
    ViewFlipper f; 
    DrawView a, b, c; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     f = new ViewFlipper(this); 
     a = new DrawView(this, "aaaaa"); 
     b = new DrawView(this, "BBBBB"); 
     c = new DrawView(this, "ccccc"); 
     f.addView(a); 
     f.addView(b); 
     f.addView(c); 
     setContentView(f); 
    } 
    //------------------------------------------------------------------------------ 
    // Draw 
    //------------------------------------------------------------------------------ 
    class DrawView extends View implements View.OnTouchListener { 
     final String text; 
     DrawView(Context Context, String Text) { 
      super(Context); 
      text = Text; 
      setOnTouchListener(this); 
     } 
     public void onDraw(Canvas Canvas) { 
      super.onDraw(Canvas); 
      Paint p = new Paint(); 
      p.setColor(0xffffffff); 
      p.setTextSize(20); 
      Canvas.drawText(text, 0, 20, p); 
     } 
     public boolean onTouch(View v, MotionEvent event) { 
      final int a = event.getAction(); 
      if (a == MotionEvent.ACTION_DOWN) { 
       final int i = f.getDisplayedChild(), n = f.getChildCount(); 
       f.setDisplayedChild((i + 1) % n); 
      } 
      return true; 
     } 
    } 
}