Полезные примеры Android

Полезные примеры Android
Android — Мультитач

Жест мультитач происходит, когда к экрану одновременно прикасается более одного пальца. Android позволяет нам обнаруживать эти жесты.

Система Android генерирует следующие события касания всякий раз, когда несколько пальцев касаются экрана одновременно.

Sr.No Описание события
1

ACTION_DOWN

Для первого указателя, касающегося экрана. Это запускает жест.

2

ACTION_POINTER_DOWN

Для дополнительных указателей, которые выходят на экран после первого.

3

ACTION_MOVE

Произошло изменение во время жеста нажатия.

4

ACTION_POINTER_UP

Отправляется, когда повышается неосновной указатель.

5

ACTION_UP

Отправляется, когда последний указатель покидает экран.

Итак, чтобы обнаружить любое из упомянутых выше событий, вам необходимо переопределить метод onTouchEvent () и проверить эти события вручную. Его синтаксис приведен ниже —

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();

Помимо этих методов, этот класс MotionEvent предоставляет другие методы для лучшей работы с мультитач. Эти методы перечислены ниже —

Sr.No Метод и описание
1

getAction ()

Этот метод возвращает вид выполняемого действия

2

getPressure ()

Этот метод возвращает текущее давление этого события для первого индекса

3

getRawX ()

Этот метод возвращает исходную необработанную координату X этого события.

4

getRawY ()

Этот метод возвращает исходную необработанную координату Y этого события.

5

getSize ()

Этот метод возвращает размер первого индекса указателя

6

getSource ()

Этот метод получает источник события

7

getXPrecision ()

Этот метод возвращает точность сообщаемых координат X

8

getYPrecision ()

Этот метод возвращает точность сообщаемых координат Y

Пример

Вот пример, демонстрирующий использование Multitouch. Он создает базовое приложение для жестов мультитач, которое позволяет вам просматривать координаты при выполнении мультитач.

Чтобы поэкспериментировать с этим примером, вам нужно запустить это на реальном устройстве.

Шаги Описание
1 Вы будете использовать студию Android, чтобы создать приложение Android в пакете com.example.sairamkrishna.myapplication.
2 Измените файл src / MainActivity.java, чтобы добавить код мультитач.
3 Измените res / layout / activity_main, чтобы добавить соответствующие компоненты XML.
4 Запустите приложение, выберите работающее устройство Android, установите на него приложение и проверьте результаты.

Ниже приводится содержимое измененного файла основной деятельности src / MainActivity.java .

package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
float xAxis = 0f;
float yAxis = 0f;
float lastXAxis = 0f;
float lastYAxis = 0f;
EditText ed1, ed2, ed3, ed4;
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed1 = (EditText) findViewById(R.id.editText);
ed2 = (EditText) findViewById(R.id.editText2);
ed3 = (EditText) findViewById(R.id.editText3);
ed4 = (EditText) findViewById(R.id.editText4);
tv1=(TextView)findViewById(R.id.textView2);
tv1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final int actionPeformed = event.getAction();
switch(actionPeformed){
case MotionEvent.ACTION_DOWN:{
final float x = event.getX();
final float y = event.getY();
lastXAxis = x;
lastYAxis = y;
ed1.setText(Float.toString(lastXAxis));
ed2.setText(Float.toString(lastYAxis));
break;
}
case MotionEvent.ACTION_MOVE:{
final float x = event.getX();
final float y = event.getY();
final float dx = x - lastXAxis;
final float dy = y - lastYAxis;
xAxis += dx;
yAxis += dy;
ed3.setText(Float.toString(xAxis));
ed4.setText(Float.toString(yAxis));
break;
}
}
return true;
}
});
}
}

Ниже приводится измененное содержимое файла xml res / layout / activity_main.xml .

В приведенном ниже коде abc указывает логотип tutorialspoint.com.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:transitionGroup="true">
<TextView android:text="Multitouch example" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textSize="35dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point"
android:id="@+id/textView"
android:layout_below="@+id/textview"
android:layout_centerHorizontal="true"
android:textColor="#ff7aff24"
android:textSize="35dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/abc"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
android:theme="@style/Base.TextAppearance.AppCompat" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_below="@+id/imageView"
android:layout_alignRight="@+id/textview"
android:layout_alignEnd="@+id/textview"
android:hint="X-Axis"
android:layout_alignLeft="@+id/textview"
android:layout_alignStart="@+id/textview"
android:textColorHint="#ff69ff0e" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:layout_below="@+id/editText"
android:layout_alignLeft="@+id/editText"
android:layout_alignStart="@+id/editText"
android:textColorHint="#ff21ff11"
android:hint="Y-Axis"
android:layout_alignRight="@+id/editText"
android:layout_alignEnd="@+id/editText" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText3"
android:layout_below="@+id/editText2"
android:layout_alignLeft="@+id/editText2"
android:layout_alignStart="@+id/editText2"
android:hint="Move X"
android:textColorHint="#ff33ff20"
android:layout_alignRight="@+id/editText2"
android:layout_alignEnd="@+id/editText2" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText4"
android:layout_below="@+id/editText3"
android:layout_alignLeft="@+id/editText3"
android:layout_alignStart="@+id/editText3"
android:textColorHint="#ff31ff07"
android:hint="Move Y"
android:layout_alignRight="@+id/editText3"
android:layout_alignEnd="@+id/editText3" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Touch here"
android:id="@+id/textView2"
android:layout_alignParentBottom="true"
android:layout_alignLeft="@+id/imageView"
android:layout_alignStart="@+id/imageView"
android:focusable="true"
android:typeface="sans"
android:clickable="true"
android:textColor="#ff5480ff"
android:textSize="35dp" />
</RelativeLayout>

Ниже приводится содержимое файла res / values ​​/ string.xml .

<resources>
<string name="app_name">My Application</string>
</resources>

Ниже приводится содержимое файла AndroidManifest.xml .

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sairamkrishna.myapplication" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Попробуем запустить ваше приложение. Я предполагаю, что вы подключили свое настоящее мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов активности вашего проекта и щелкните Значок запуска Eclipseзначок « Выполнить» на панели инструментов. Перед запуском вашего приложения студия Android отобразит следующее окно, чтобы выбрать вариант, в котором вы хотите запустить приложение Android.

Учебное пособие по Anroid MediaPlayer

Выберите свое мобильное устройство в качестве опции, а затем проверьте свое мобильное устройство, на котором будет отображаться экран по умолчанию —

Руководство Android Multitouch

По умолчанию вы ничего не увидите ни в одном поле. Теперь просто коснитесь области Touch here и посмотрите некоторые данные в полях. Это показано ниже —

Руководство Android Multitouch

Вы увидите, что данные в поле «Переместить» равны 0, потому что был выполнен только один жест касания. Теперь нажмите на экран и начните перетаскивать палец. Вы увидите изменение данных в поле перемещения. Это показано ниже —

Руководство Android Multitouch

Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
  • Attributes
  • Custom attributes
  • Custom fields
Click outside to hide the compare bar
Compare