我正在考慮創建一個Android應用程序作爲更廣泛的藝術項目的一部分,並具有Android開發沒有經驗需要檢查,如果事情是可能/可行的。左/右和上/下刷卡導航
它需要一個非常簡單的接口,數個(15 - 20)之間導航包含圖像或文本頁面。導航需要左/右和向上/向下滑動。
我已經(從以往關於這一主題的問題通過複製/粘貼代碼)在一個非常簡單的應用程序使用PagerAdapter/OnClickListener實現概念的證據,但這不僅左/右切換。
是否有使用此頁面之間向上/向下導航的方法嗎?任何幫助/建議將不勝感激,
import android.content.Context;
import android.content.Intent;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 5;
}
@Override
public Object instantiateItem(View container, int position) {
Context context = container.getContext();
LinearLayout layout = new LinearLayout(context);
TextView textItem = new TextView(context);
Button buttonItem = new Button(context);
buttonItem.setText("Aceptar");
buttonItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("com.phone");
}
});
switch (position) {
case 0:
textItem.setText("Photo 1 - begining");
break;
case 1:
textItem.setText("Photo 2");
break;
case 2:
textItem.setText("Photo 3");
break;
case 3:
textItem.setText("Photo 4");
break;
case 4:
textItem.setText("Photo 5 - end");
break;
}
layout.addView(textItem);
((ViewPager) container).addView(layout, 0);
return layout;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
下面是新的代碼給錯誤
的方法onTouch(查看,MotionEvent)是未定義的類型對象
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
public class OnSwipeTouchListener implements OnTouchListener {
private final GestureDetector gestureDetector = new GestureDetector(new GestureListener());
public boolean onTouch(final View view, final MotionEvent motionEvent) {
super.onTouch(view, motionEvent);
return gestureDetector.onTouchEvent(motionEvent);
}
private final class GestureListener extends SimpleOnGestureListener {
private static final int SWIPE_THRESHOLD = 100;
private static final int SWIPE_VELOCITY_THRESHOLD = 100;
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
boolean result = false;
try {
float diffY = e2.getY() - e1.getY();
float diffX = e2.getX() - e1.getX();
if (Math.abs(diffX) > Math.abs(diffY)) {
if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
if (diffX > 0) {
onSwipeRight();
} else {
onSwipeLeft();
}
}
} else {
if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
if (diffY > 0) {
onSwipeBottom();
} else {
onSwipeTop();
}
}
}
} catch (Exception exception) {
exception.printStackTrace();
}
return result;
}
}
public void onSwipeRight() {
}
public void onSwipeLeft() {
}
public void onSwipeTop() {
}
public void onSwipeBottom() {
}
}
請選中該http://stackoverflow.com/questions/4139288/android-how-to-handle-right-to-left-swipe-gestures和http://stackoverflow.com/questions/12970249/Android的刷卡左,或右到幻燈片視圖 – 2013-04-22 11:23:45
請選中該http://stackoverflow.com/questions/937313/android-basic-gesture-detection和 http://stackoverflow.com/問題/ 12970249/android-swipe-left-right-to-slide-views – 2013-04-22 11:33:09
@ pragnesh-soni謝謝你,關注http://stackoverflow.com/questions/4139288/android-how-to-handle-right-左手輕掃手勢,我留下了錯誤「方法onTouch(視圖,MotionEvent)未定義的類型對象」,在super.onTouch(視圖,motionEvent)行; ---我無法刪除這個, – dantibb 2013-04-22 16:17:47