2010-07-08 3 views
4

ViewFlipper에서 터치 스크롤을 구현해야합니다. 예를 들어. 두 개의 이미지가 있습니다. 먼저 ViewFlipper는 첫 번째 이미지를 보여줍니다. 이제 나는보기를 오른쪽에서 왼쪽으로 돌았습니다. 첫 번째 이미지보기 왼쪽에서 슬라이드하고 두 번째 슬라이드에서 왼쪽에서 슬라이드. 나는 이것을 달성 할 수있다.이 Post. 하지만 이미지를 스크롤하고 싶습니다. 즉, Action_Move 이벤트에서 Touch Scroll을하고 싶습니다. 예를 들어, 오른쪽에서 왼쪽으로 터치를 움직일 때 터치가 얼마나 움직 였는지 플링 할 것입니다. 그 시간에 두 이미지가 부분적으로 출력되어야합니다.안드로이드에서 플리퍼보기를 터치하면 터치됩니까?

어떻게 수행하나요? 스크린 레벨 (높이 & 너비)을 측정해야합니다. 예제 코드가 더 유용합니다.

답변

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; 
     } 
    } 
} 
관련 문제