آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

Vahid  11 سال پیش  10 سال پیش
+12 0

سلام ...
امروز دنبال یک کد خوب و ساده بودم برای تشخیص 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 که در بالای اون توضیح فارسی نوشته شده کد مورد نظرتون رو بنویسید.

منبع

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

0 0
مرسی... (11 سال پیش)
0 0
تشکر از شما اما چطور میشه با کشیدن انگشت با جهتهای چپ یا راست یک صفحه جدید مشاهده کرد . مشابه دیوار یا اپ های دیگه (11 سال پیش)
+1 0
در بلاک مورد نظر کد تعویض اکتویتی رو قرار بدید، بعلاوه برای بهتر شدن جلوه بصری، حتما از انیمیشن های مناسب استفاده کنید. (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
mosafer  10 سال پیش
0 0

سلام

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

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

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

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

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

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

 


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