آموزش: تشخیص رویداد swipe در یک صفحه (تشخیص حرکت به چپ، راست، بالا و پایین)
سلام ...
امروز دنبال یک کد خوب و ساده بودم برای تشخیص 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 که در بالای اون توضیح فارسی نوشته شده کد مورد نظرتون رو بنویسید.
امیدوارم در رسیدن به نتیجه مطلوب کمکتون کنه،
موفق باشید.
سلام
ممنون از مطلب جالتون
فقط یه سوال داشتم
اگر در اکتیویتیمون یک لایوت باشه که 24 دکمه به یک اندازه درون اون وجود داشته باشه...
حال بخواهیم یکی از دکمه ها رو DOWN کنیم و سپس بین چند دکمه هم MOVE کنیم و در آخر در یکی از کلیدهای دلخواه UP کنیم ..
و میخوام درون یه TEXT به من اعلام کنه که کدام کلید DOWN و کدام کلید UP شده
بهترین روش برای این کار چیه؟؟؟؟
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .