我必須實現ViewFlipper上的Touch Scroll。例如。我有兩個圖像。首先,ViewFlipper顯示第一張圖片。現在我從右向左衝擊視圖。第一張圖片視圖向左滑出,第二張從左滑入。我可以通過這個Post來實現它。但我想滾動圖像。也就是說,在Action_Move事件中,我想要做觸摸滾動。例如,當我將觸摸從右向左移動時,它會拋出觸摸移動的距離。那時輸出應該部分顯示兩個圖像。在Android的觸摸屏上觸摸滾動?
如何做到這一點?我必須測量屏幕級別(高度&寬度)。示例代碼更有幫助。
我必須實現ViewFlipper上的Touch Scroll。例如。我有兩個圖像。首先,ViewFlipper顯示第一張圖片。現在我從右向左衝擊視圖。第一張圖片視圖向左滑出,第二張從左滑入。我可以通過這個Post來實現它。但我想滾動圖像。也就是說,在Action_Move事件中,我想要做觸摸滾動。例如,當我將觸摸從右向左移動時,它會拋出觸摸移動的距離。那時輸出應該部分顯示兩個圖像。在Android的觸摸屏上觸摸滾動?
如何做到這一點?我必須測量屏幕級別(高度&寬度)。示例代碼更有幫助。
如果需要檢測僅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/
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;
}
}
}