بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

آموزش: تشخیص رویداد swipe در یک صفحه (تشخیص حرکت به چپ، راست، بالا و پایین)

مدیریت گفتگو
Vahid 11 سال پیش
آخرین تغییر: 10 سال پیش

سلام ...
امروز دنبال یک کد خوب و ساده بودم برای تشخیص swipe رو صفحه تا بشه بین چند اکتیویتی به راحتی سوئیچ کرد.

کد هایی که ازش استفاده کردم رو اینجا قرار میدم تا دوستان استفاده کنند:

یک LinearLayout نمونه:

 
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
android:layout_marginTop="80dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:gravity="center"
android:textColor="#000099"
android:textSize="30dp"
android:text="Detect Swap Event Demo" />


</LinearLayout>

کد های مربوط به MainActivity:

 public class MainActivity extends Activity {
float x1, x2;
float y1, y2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
// onTouchEvent () method gets called when User performs any touch event on screen
// Method to handle touch event like left to right swap and right to left swap
public boolean onTouchEvent(MotionEvent touchevent) {
switch (touchevent.getAction()) {
// when user first touches the screen we get x and y coordinate
case MotionEvent.ACTION_DOWN:{
x1 = touchevent.getX();
y1 = touchevent.getY();
break;
}
case MotionEvent.ACTION_UP:{
x2 = touchevent.getX();
y2 = touchevent.getY();
// اگر از چپ به راست کشیده شود
if (x1 < x2) {
Toast.makeText(this, "Left to Right Swap Performed", Toast.LENGTH_LONG).show();
}
// اگر از راست به چپ کشیده شود
if (x1 > x2) {
Toast.makeText(this, "Right to Left Swap Performed", Toast.LENGTH_LONG).show();
}
// اگر از بالا به پایین کشیده شود
if (y1 < y2) {
Toast.makeText(this, "UP to Down Swap Performed", Toast.LENGTH_LONG).show();
}
//اگر از پایین به بالا کشیده شود
if (y1 > y2) {
Toast.makeText(this, "Down to UP Swap Performed", Toast.LENGTH_LONG).show();
}
break;
}
}
return false;
}
}

برای عملکرد مورد نظر (مثل تغییر اکتیویتی)، داخل بلاک های if که در بالای اون توضیح فارسی نوشته شده کد مورد نظرتون رو بنویسید.

منبع

امیدوارم در رسیدن به نتیجه مطلوب کمکتون کنه،
موفق باشید.

نظرات

Iran 11 سال پیش
تشکر از شما اما چطور میشه با کشیدن انگشت با جهتهای چپ یا راست یک صفحه جدید مشاهده کرد . مشابه دیوار یا اپ های دیگه
Vahid 11 سال پیش
در بلاک مورد نظر کد تعویض اکتویتی رو قرار بدید، بعلاوه برای بهتر شدن جلوه بصری، حتما از انیمیشن های مناسب استفاده کنید.

پاسخ‌ها 1

mosafer 10 سال پیش

سلام

ممنون از مطلب جالتون

فقط یه سوال داشتم

اگر در اکتیویتیمون یک لایوت باشه که 24 دکمه به یک اندازه درون اون وجود داشته باشه...

حال بخواهیم یکی از دکمه ها رو DOWN کنیم و سپس بین چند دکمه هم MOVE کنیم و در آخر در یکی از کلیدهای دلخواه UP کنیم ..

و میخوام درون یه TEXT به من اعلام کنه که کدام کلید DOWN و کدام کلید UP شده

بهترین روش برای این کار چیه؟؟؟؟

 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .