مشخصات مقاله
-
1784
-
0.0
-
5839
-
0
-
1
آموزش Multitouch اندروید
آموزش Multitouch اندروید
حالت مالتي تاچ زماني كه بيش از يك انگشت صفحه را لمس كنند اتفاق مي افتد. اندرويد اجازه انتخاب اين حركات رو مي دهد.
سيستم عامل اندرويد برنامه اي براي اين مسايل تعبيه كرده است.
بنابراين به منظور انتخاب هر كدام از اعمال بالا شما نياز به خاموش كردن آن تاچ ايونت داريد و انتخابات را به صورت دستي چك كنيد. محتواي اصلي در زير آمده است.
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 تعبيه شده است برای هماهنگي بهتر با مولتي تاچ اين روش ها در زير ليست شده اند.
مثال:
در اينجا مثالي براي مولتي تاچ آمده است. برنامه حالات مولتي تاچ را مي سازد كه به شما اجازه مي دهد تا هماهنگي بين اين حركات را زماني كه مولتي تاچ اجرا مي شود ببينيد.
براي آزمايش كردن اين مثال شما بايد آن را بر روي يك دستگاه حقيقي امتحان كنيد.
در قسمت زير مطلب به كلي توضيح داده شده است.
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 پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.
دستگاه موبايل تان را به عنوان يك گزينه انتخاب كنيد و سپس آن را براي ديدن اين پيام چك كنيد.
به وسيله اين قرارداد شما چيزي در اين محيط نمي بينيد حالا تنها ضربه بزنيد به نطقه تاچ هيير و برخي اطلاعات در اين زمینه را مشاهده كنيد كه در تصوير زير آمده است.
شما خواهيد ديد كه اين اطلاعات در قسمت موو 0 است. زيرا تنها يك تماس با سطح بوجود آمده است. حالا به صفحه ضربه زده و انگشت خود را بر روي آن بكشيد شما به راحتي تغيير را در اطلاعات مربوط به حركت مشاهده خواهيد كرد. در تصوير زير نشان داده شده است.