مشخصات مقاله
-
1781
-
0.0
-
5992
-
0
-
1
آموزش حرکات اندروید
آموزش حرکات اندروید
اندروید انواع خاصی از لمس صفحه را ارائه می دهد که عبارتند از: فشار دادن(pinch)، ضربه ی دوتایی (double tap)، فهرست ها (scrolls)، فشار طولانی مدت (long presses)، flinch .
اندروید گروه GestureDetector را ارائه می دهد تا رویدادهای حرکات را دریافت کرده و به ما بگوید که آیا این رویدادها با حرکات منطبق هستند یا نه. برای استفاده از آن لازم است یک آبجکت از GestureDetector ایجاد کنید و سپس یک گروه دیگر با GestureDetector.SimpleOnGestureListener گسترش دهید تا مانند یک شنونده عمل کنید و از بعضی روش عبور کنید. ترکیب آن را می توانید در زیر ببینید .
GestureDetector myG;
myG = new GestureDetector(this,new Gesture());
class Gesture extends GestureDetector.SimpleOnGestureListener{
public boolean onSingleTapUp(MotionEvent ev) {
}
public void onLongPress(MotionEvent ev) {
}
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
}
}
}
رسیدگی به حرکت pinch
اندروید برای رسیدگی به حرکاتی مانند pinch گروه ScaleGestureDetector را ایجاد می کند. برای استفاده از این گروه لازم است که یک آبجکت از این گروه را نمونه گذاری کنید که ترکیب آن را در زیر می بینید .
ScaleGestureDetector SGD;
SGD = new ScaleGestureDetector(this,new ScaleListener());
اولین پارامتر کانتکست و دمین پارامتر شنونده ی رویداد (event listener) می باشد. ما باید رویداد شنونده را تعریف کرده و از عملکرد OnTouchEvent برای به کار انداختن آن استفاده کنیم. ترکیب آن را در زیر می بینید.
public boolean onTouchEvent(MotionEvent ev) {
SGD.onTouchEvent(ev);
return true;
}
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
float scale = detector.getScaleFactor();
return true;
}
}
علاوه بر pinch، روش های دیگری هم وجود دارند که در مورد رویدادهای لمس بیشتر توضیح می دهند. لیست آنها در زیر ارائه شده اند.
مثال:
در اینجا مثالی را می بینید که استفاده از گروه ScaleGestureDetector را توضیح می دهد. این مثال یک برامه ی پایه ایجاد می کند که به شما اجازه می دهد تا از طریق pinch زوم کنید یا از حالت زوم خارج شوید. برای آزمایش با این مثال به یک دستگاه واقعی یا یک مقلد با صفحه ی لمسی فعال نیاز خواهید داشت.
در زیر محتوای تغییریافته ی فایل فعالیت اصلی را مشاهده می کنید.
src/com.example.gestures/MainActivity.java.
package com.example.gestures;
import android.app.Activity;
import android.graphics.Matrix;
import android.os.Bundle;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView img;
private Matrix matrix = new Matrix();
private float scale = 1f;
private ScaleGestureDetector SGD;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = (ImageView)findViewById(R.id.imageView1);
SGD = new ScaleGestureDetector(this,new ScaleListener());
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
SGD.onTouchEvent(ev);
return true;
}
private class ScaleListener extends ScaleGestureDetector.
SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
scale *= detector.getScaleFactor();
scale = Math.max(0.1f, Math.min(scale, 5.0f));
matrix.setScale(scale, scale);
img.setImageMatrix(matrix);
return true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
در زیر محتوای xml تغییریافته ی res/layout/activity_main.xml را مشاهده می کنید.
در زیر محتوای res/values/string.xml را مشاهده می کنید.
Gestures Settings Pinch to zoom in or out!
در زیر محتوای فایل AndroidManifest.xml را مشاهده می کنید.
اجازه بدهید برنامه ی Gestures را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن Run از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.
موبایل خود را به عنوان یک گزینه انتخاب کرده و سپس آن را چک کنید که صفحه ی زیر را نمایش می دهد.
اکنون دو انگشت را روی صفحه ی اندروید قرار داده و آن ها را از هم دور کنید. خواهید دید که تصویر اندروید بزرگتر می شود. مانند تصویر زیر
حال دوباره دو انگشت را روی صفحه قرار داده و آنها را به هم نزدیک کنید، خواهید دید که تصویر اندروید کوچکتر می شود، مانند تصویر زیر