کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Multitouch اندروید

android-آموزش اندروید-آموزش برنامه نویسی اندروید

آموزش Multitouch اندروید

حالت مالتي تاچ زماني كه بيش از يك انگشت صفحه را لمس كنند اتفاق مي افتد. اندرويد اجازه انتخاب اين حركات رو مي دهد.

سيستم عامل اندرويد برنامه اي براي اين مسايل تعبيه كرده است.

اعمال و توضيحات
ردیف
ACTION_DOWN براي اولين نقطه كه صفحه را لمس مي كند اين عمل حركات را آغاز مي كند.
1
ACTION_POINTER_DOWN براي نقاط زيادي كه بر صفحه وارد ميشود بيش از يك نقطه...
2
ACTION_MOVE تغييري در طي لمس صفحه و حركت آن اتفاق مي افتد.
3
ACTION_POINTER_UP فرستادن تماس بيشتر تا زماني كه يك نقطه كه اوليه نباشد بالا بيايد. .
4
ACTION_UP فرستادن تماس تا زماني كه آخرين نقطه صفحه نمايش را ترك مي كند.
5

بنابراين به منظور انتخاب هر كدام از اعمال بالا شما نياز به خاموش كردن آن تاچ ايونت داريد و انتخابات را به صورت دستي چك كنيد. محتواي اصلي در زير آمده است.

public boolean onTouchEvent(MotionEvent ev){‎
final int actionPeformed = ev.getAction();‎
        switch(actionPeformed){‎
        ‎   case MotionEvent.ACTION_DOWN:{‎
        ‎      break;‎
        ‎   }‎
        ‎   case MotionEvent.ACTION_MOVE:{‎
        ‎      break;‎
        ‎   }‎
        ‎   return true;‎
        ‎}
            

در اين موارد شما قادر به محاسبه از هر راهي هستيد. براي مثال زومينگ و شرايكينگ و غيره. براي بدست آوردن x و y شما مي توانيد از روش هاي getx و gety استفاده كنيد كه به قرار زير می باشد.

final float x = ev.getX();‎
final float y = ev.getY();

علاوه بر اين روش ها روش هاي ديگري نيز براي رویداد motion تعبيه شده است برای هماهنگي بهتر با مولتي تاچ اين روش ها در زير ليست شده اند.

توصيف
مراحل
getAction() اين روش عمل انجام شده را باز مي گرداند.
1
getPressure() اين روش تماس اوليه را براي مورد ضميمه شده باز مي گرداند.
2
getRawX() اين روش بردار ایكس اصلي را هماهنگ مي سازد.
3
getRawY() اين روش بردار ايگرگ اصلي را هماهنگ مي سازد.
4
getSize() اين روش اندازه را به حالت اندازه اوليه براي مورد ضميمه شده در مي آورد.
5
getSource() اين روش منبع عمل را در دسترس قرار مي دهد.
6
getXPrecision() اين روش دقت هماهنگي بردار ایكس را كه گزارش داده شده است باز مي گرداند.
7
getYPrecision() اين روش دقت هماهنگي بردار ایگرگ را كه گزارش داده شده است باز مي گرداند.
8

مثال:

در اينجا مثالي براي مولتي تاچ آمده است. برنامه حالات مولتي تاچ را مي سازد كه به شما اجازه مي دهد تا هماهنگي بين اين حركات را زماني كه مولتي تاچ اجرا مي شود ببينيد.

براي آزمايش كردن اين مثال شما بايد آن را بر روي يك دستگاه حقيقي امتحان كنيد.

توضيحات
مراحل
شما از Eclipse IDE براي ساختن برنامه اندرويدي با نام Multitouch استفاده خواهيد كرد و آن را در پوشه com.example.multitouch جاي خواهيد داد و از هدفمند بودن SDK و گرد آوري آن با آخرين ورژن اندرويد به منظور استفاده از سطوح بالاتري API ها اطمينان حاصل كنيد.
1
اصلاح src/MainActivity.java file به منظود افزودن كد هاي لازم.
2
اصلاح the res/layout/activity_main به منظور افزودن تركيبات XML به ترتيب
3
اصلاح the res/values/string.xml به منظور افزودن تركيبات رديفي لازم
4
برنامه را اجرا كنيد و يك وسيله اندرويدي اجرايي را انتخاب كنيد سپس برنامه را در آن نصب كنيد و نتيجه را باز بيني كنيد.
5

در قسمت زير مطلب به كلي توضيح داده شده است.

src/com.example.multitouch/MainActivity.java. ‎
        package com.example.multitouch;‎
        import android.app.Activity;‎
        import android.os.Bundle;‎
        import android.view.Menu;‎
        import android.view.MotionEvent;‎
        import android.widget.EditText;‎
        import android.widget.Toast;‎
public class MainActivity extends Activity {‎
        ‎   float xAxis = 0f;‎
        ‎   float yAxis = 0f;‎
        ‎   float lastXAxis = 0f;‎
        ‎   float lastYAxis = 0f;‎
        ‎   private EditText xText,yText,moveX,moveY;‎
        ‎   @Override
        ‎   protected void onCreate(Bundle savedInstanceState) {‎
                ‎      super.onCreate(savedInstanceState);‎
                ‎      setContentView(R.layout.activity_main);‎
                ‎      xText = (EditText)findViewById(R.id.editText2);‎
                ‎      yText = (EditText)findViewById(R.id.editText3);‎
                ‎      moveX = (EditText)findViewById(R.id.editText1);‎
                ‎      moveY = (EditText)findViewById(R.id.editText4);‎
                ‎   }‎
                ‎   @Override
        ‎   public boolean onTouchEvent(MotionEvent ev){‎
                ‎      final int actionPeformed = ev.getAction();‎
                ‎      switch(actionPeformed){‎
                        ‎         case MotionEvent.ACTION_DOWN:{‎
                                ‎            final float x = ev.getX();‎
                                ‎            final float y = ev.getY();‎
                                ‎            lastXAxis = x;‎
                                ‎            lastYAxis = y;‎
                                ‎            xText.setText(Float.toString(lastXAxis));‎
                                ‎            yText.setText(Float.toString(lastYAxis));‎
                                ‎         break;‎
                                ‎        }‎
                        ‎         case MotionEvent.ACTION_MOVE:{‎
                                ‎            final float x = ev.getX();‎
                                ‎            final float y = ev.getY();‎
                                ‎            final float dx = x - lastXAxis;‎
                                ‎            final float dy = y - lastYAxis;‎
                                ‎            xAxis += dx;‎
                                ‎            yAxis += dy;‎
                                ‎            moveX.setText(Float.toString(xAxis));‎
                                ‎            moveY.setText(Float.toString(yAxis));‎
                                ‎         break;‎
                                ‎        }‎
                        ‎      }‎
                ‎      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;‎
                ‎   }‎
                ‎}
            

در قسمت زير مطلب به كلي توضيح داده شده است.

                of the xml res/layout/activity_main.xml.‎
‎
    ‎
 
    ‎   ‎
 
    ‎   
        ‎
        ‎      ‎
        ‎   ‎
 
        ‎   
            ‎
            ‎   ‎
 
            ‎   ‎
 
            ‎   ‎
 
            ‎   ‎
 
            ‎   ‎
 
            ‎   ‎
 
            ‎   ‎
            ‎

در قسمت زير مطلب به كلي توضيح داده شده است.

                of the res/values/string.xml.‎
‎

‎
‎
    ‎
    ‎   Gestures‎
    ‎   Settings‎
    ‎   Pinch to zoom in or ‎out!‎
    ‎   X-Axis‎
    ‎   Y-Axis‎
    ‎   Move X‎
    ‎   Move Y‎
    ‎   Touch here‎
    ‎

            

در قسمت زير مطلب به كلي توضيح داده شده است.

of AndroidManifest.xml file.‎
‎

‎
‎
    ‎
 
    ‎   ‎
 
    ‎   
        ‎
        ‎      
            ‎
            ‎         
                ‎
                ‎            ‎
                ‎            ‎
                ‎
            ‎
            ‎      ‎
            ‎   ‎         ‎

            

اجازه بدهید برنامه multitouch را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن Run از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.

دستگاه موبايل تان را به عنوان يك گزينه انتخاب كنيد و سپس آن را براي ديدن اين پيام چك كنيد.

آموزش Multitouch اندروید

به وسيله اين قرارداد شما چيزي در اين محيط نمي بينيد حالا تنها ضربه بزنيد به نطقه تاچ هيير و برخي اطلاعات در اين زمینه را مشاهده كنيد كه در تصوير زير آمده است.

آموزش Multitouch اندروید

شما خواهيد ديد كه اين اطلاعات در قسمت موو 0 است. زيرا تنها يك تماس با سطح بوجود آمده است. حالا به صفحه ضربه زده و انگشت خود را بر روي آن بكشيد شما به راحتي تغيير را در اطلاعات مربوط به حركت مشاهده خواهيد كرد. در تصوير زير نشان داده شده است.

آموزش Multitouch اندروید
1394/07/27 5837 1784
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...