دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۹
  • آبان

جلسه ۳۸ : حرکات صفحه لمسی در اندروید

  • دسته‌بندی‌ها :
جلسه ۳۸ : حرکات صفحه لمسی در اندروید
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش برنامه نویسی اندروید را دنبال می کنند. آندروید نوع خاصی از رویدادهای صفحه لمسی را ارائه می کند، که از جمله می توان به pinch ، دوبار ضربه زدن، کپی، فشار دادن طولانی و flinch اشاره کرد. این همه به عنوان gestures ( حرکات) شناخته شده است. آندروید کلاس GestureDetector را برای دریافت رویدادهای حرکتی فراهم می کند و به ما اعلام می کند که این رویدادها به حرکات مربوط می شوند یا خیر. برای استفاده از این رویدادها، شما باید یک شی از GestureDetector ایجاد کرده و یک کلاس با GestureDetector.SimpleOnGestureListener گسترش دهید.در ادامه ی مباحث این آموزش برای آشنایی با حرکات صفحه لمسی در اندروید با ما همراه باشید.

      حرکات صفحه لمسی در اندروید

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

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

      سپس می توانید سایر کلاس ها را با GestureDetector.SimpleOnGestureListener گسترش داده یا extend کنید.

      ساختار کار به صورت زیر است:

      مثال : 

      دستکاری Pinch Gesture

      اندروید کلاس ScaleGestureDetector  را برای دستکاری حرکات صفحه نمایش ارائه می دهد.

      شما ابتدا باید یک آبجکت از این کلاس ایجاد کنید، که ساختار آن به صورت زیر است:

      مثال : 

      اولین پارامتر context ، و پارامتر دوم نیز رویداد listener است.

      ابتدا باید رویداد listener را تعریف کرده و سپس یک تابع OnTouchEvent را override کنیم.

      ساختار این اقدامات به صورت زیر است:

      مثال : 

      علاوه بر این متدهای دیگری نیز وجود دارد که رویدادهای لمس صفحه نمایش را ارائه می دهند، که به شرح جدول زیر است:

      ردیفمتد و توضیحات مربوطه
      ۱

      getEventTime()

      این متد زمان رویداد فعلی را پردازش می کند

      ۲

      getFocusX()

      این متد مختصات x حرکت فعلی صفحه را می گیرد.

      ۳

      getFocusY()

      این متد مختصات y حرکت فعلی صفحه را می گیرد.

      ۴

      getTimeDelta()

      این متد تفاوت زمانی را در میلی ثانیه بین رویداد scaling قبلی قبول شده و رویداد scaling شدن فعلی نشان می دهد.

      ۵

      isInProgress()

      اگر یک فرآیند scale در حال انجام باشد این متد true را برمی گرداند.

      ۶

      onTouchEvent(MotionEvent event)

      این متد رویدادهای MotionEvents و dispatches را در زمان مناسب می پذیرد.

      مثال

      در اینجا یک مثال کاربردی از کلاس ScaleGestureDetector را نشان می دهیم.

      در این مثال یک برنامه ایجاد می کنیم که با استفاده از pinch بتوان در صفحه نمایش برنامه zoom کرد.

      نکته : برای تست این برنامه باید از دستگاه اندروید واقعی و یا از شبیه ساز به همراه صفحه نمایش لمسی فعال استفاده کنید.

      مراحل انجام برنامه:

      مراحلتوضیحات
      ۱مراحل ایجاد برنامه در اندروید استدیو را طبق بخش های قبلی دنبال کرده و نام پکیج را com.pvlearn.myapplication قرار بدهید.
      ۲به محتوای فایل  src/MainActivity.java کدهای ضروری را اضافه کنید.
      ۳اجزای رابط کاربری را به فایل res/layout/activity_main اضافه کنید.
      ۴برنامه را اجرا کنید تا شبیه ساز اندروید نتیجه را نمایش دهد.

      محتوای main activity در فایل src/MainActivity.java:

      مثال : 

      محتوای فایل res/layout/activity_main.xml:

      مثال : 

      محتوای فایل res/values/string.xml:

      مثال : 

      محتوای فایل AndroidManifest.xml:

      مثال : 

      اجرای برنامه

      برای اجرای برنامه ی اندرویدی خود یکی از فایل های activity در برنامه ی خود کلیک کنید.

      سپس روی نماد  (Run) از نوار ابزار برای شروع اجرای برنامه کلیک کنید.

      سپس نتیجه اجرای برنامه را در دستگاه اندروید خود مشابه زیر مشاهده خواهید کرد.

      حرکات صفحه لمسی در اندروید

      حرکات صفحه لمسی در اندروید

      حالا همانند زوم کردن هر تصویری در صفحه ی موبایل با استفاده از دو انگشت خود روی صفحه زوم کرده و نتیجه را ببینید:

      حرکات صفحه لمسی در اندروید -نتیجه

      حرکات صفحه لمسی در اندروید -نتیجه

      سپس مجددا با استفاده از حرکت دو انگشت خود روی صفحه سعی کنید آن را کوچک کنید:

      حرکات صفحه لمسی در اندروید -نتیجه کوچک کردن

      حرکات صفحه لمسی در اندروید -نتیجه کوچک کردن

      کلام آخر

      در بعضی موارد شما نیاز دارید که از قابلیت های مختلف حرکات صفحه لمسی در اندروید از جمله زوم کردن ، جا به جایی ،اسکرول و… در اپلیکیشن خود نیز استفاده کنید، اندروید این قابلیت ها را به سادگی همانطور که در مباحث فوق مشاهده کردید در اختیاز شما قرار می دهد.

      مباحث بخش بعدی را به Google Maps در اندروید اختصاص می دهیم.

      QR:  جلسه ۳۸ : حرکات صفحه لمسی در اندروید
      به اشتراک بگذارید