دمت گرم
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
جابجایی بین اکتیویتی ها با لمس صفحه
مدیریت گفتگو
آخرین تغییر: 11 سال پیش
چجوری می تونم بین اکتیویتی ها با لمس صفحه یعنی با کشیدن انگشت به چپ یا راست جابجا بشم؟
مثلا تو چند اکتیویتی عکس دارم میخوام با لمس صفحه بره صفحه بعد...
پاسخها 2
این کد رو هیچ جا گیر نمیاری من برات میذارم (:
اینا رو تو بالای oncreate معرفی کن
private GestureDetector gDetector; private static final int SWIPE_MIN_DISTANCE = 120; private static final int SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200;
اینا هم تو خود oncreate
Context context = this;
gDetector = new GestureDetector(context, this);
Log.d(Thread.currentThread().getStackTrace()[2].getClassName()
.substring(
Thread.currentThread().getStackTrace()[2]
.getClassName().lastIndexOf(".") + 1)
+ "."
+ Thread.currentThread().getStackTrace()[2].getMethodName()
+ "():"
+ Thread.currentThread().getStackTrace()[2].getLineNumber(),
"it worked");
}
public boolean onDown(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
super.dispatchTouchEvent(ev);
return gDetector.onTouchEvent(ev);
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// Check movement along the Y-axis. If it exceeds
// SWIPE_MAX_OFF_PATH,
// then dismiss the swipe.
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// Swipe from right to left.
// The swipe needs to exceed a certain distance (SWIPE_MIN_DISTANCE)
// and a certain velocity (SWIPE_THRESHOLD_VELOCITY).
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// next();
Log.e(Thread.currentThread().getStackTrace()[2].getClassName()
.substring(
Thread.currentThread().getStackTrace()[2]
.getClassName().lastIndexOf(".") + 1)
+ "."
+ Thread.currentThread().getStackTrace()[2].getMethodName()
+ "():"
+ Thread.currentThread().getStackTrace()[2].getLineNumber(),
"Swipe from right to left");
Intent intent = new Intent(this, vob16_32.class);
startActivity(intent);
finish();
return true;
}
// Swipe from left to right.
// The swipe needs to exceed a certain distance (SWIPE_MIN_DISTANCE)
// and a certain velocity (SWIPE_THRESHOLD_VELOCITY).
if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// previous();
Log.e(Thread.currentThread().getStackTrace()[2].getClassName()
.substring(
Thread.currentThread().getStackTrace()[2]
.getClassName().lastIndexOf(".") + 1)
+ "."
+ Thread.currentThread().getStackTrace()[2].getMethodName()
+ "():"
+ Thread.currentThread().getStackTrace()[2].getLineNumber(),
"Swipe from left to right");
Intent intent = new Intent(this, vob16_30.class);
startActivity(intent);
finish();
return true;
}
return false;
}
public void onLongPress(MotionEvent arg0) {
// TODO Auto-generated method stub
}
public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
// TODO Auto-generated method stub
return false;
}
public void onShowPress(MotionEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public boolean onTouchEvent(MotionEvent me) {
return gDetector.onTouchEvent(me);
}
public boolean onSingleTapUp(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}
public void onGesture(GestureOverlayView overlay, MotionEvent event) {
// TODO Auto-generated method stub
}
public void onGestureCancelled(GestureOverlayView overlay,
MotionEvent event) {
// TODO Auto-generated method stub
}
public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) {
// TODO Auto-generated method stub
}
public void onGestureStarted(GestureOverlayView overlay,
MotionEvent event) {
// TODO Auto-generated method stub
}
}
برای رفتن به سمت راست این قسمت رو تغییر بده
Intent intent = new Intent(this, vob16_32.class);//اکتیویتی دلخواه startActivity(intent); finish();
برای سمت چپ اینو
Intent intent = new Intent(this, vob16_30.class);//اکتیوتی دلخواه startActivity(intent); finish();
نظرات
آمکان داره یه مدل سورس بزارین ؟
دوست عزیز سورسی نیاز ندارد این کدهای بالا رو تو اکتویتی که میخای با انگشت چپ و راست کنی قرار بده همین اگر منظور شما ویوپیچر است اون قضیش فرق میکنه این فقط برای جابه جایی بین دو اکتیوتی هستش
شبیه به اون پست های که من گذاشتم در مورد اسلاید صفحهات میشه من با مشکل بر خورد امکان داره یه نگاه بندازین
mf2010 بسیار ممنون استفاده کردیم خوب بود ممنون
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات