Управління вводом/виводом та сенсорною підсистемою в ОС Android.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2018
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Мережеві операційні системи

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка” / Звіт До Лабораторної роботи №3 З дисципліни: «Мережні операційні системи» На тему: «Управління вводом/виводом та сенсорною підсистемою в ОС Android.» МЕТА: Оволодіти навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android. 1. Загальні відомості 1.1. Основні елементи інтерфейсу Android-пристрою [1]. 1.2. Способи створення інтерфейсу користувача в ОС Android [2]. Хід виконання програми Варіант №1 1. Програма контролю дотиків до сенсорного екрану (Listing 4–3. SingleTouchTest.java + Listing 4–4. MultiTouchTest.java [3]) Main_Activity.java import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.TextView; public class MultiTouchTest extends AppCompatActivity implements OnTouchListener { StringBuilder builder = new StringBuilder(); TextView textView; float[] x = new float[10]; float[] y = new float[10]; boolean[] touched = new boolean[10]; int[] id = new int[10]; private void updateTextView() { builder.setLength(0); for (int i = 0; i < 10; i++) { builder.append(touched[i]); builder.append(", "); builder.append(id[i]); builder.append(", "); builder.append(x[i]); builder.append(", "); builder.append(y[i]); builder.append("\n"); } textView.setText(builder.toString()); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); textView = new TextView(this); textView.setText("Touch and drag (multiple fingers supported)!"); textView.setOnTouchListener(this); setContentView(textView); for (int i = 0; i < 10; i++) { id[i] = -1; } updateTextView(); } public boolean onTouch(View v, MotionEvent event) { int action = event.getAction() & MotionEvent.ACTION_MASK; int pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_ID_MASK) >> MotionEvent.ACTION_POINTER_ID_SHIFT; int pointerCount = event.getPointerCount(); for (int i = 0; i < 10; i++) { if (i >= pointerCount) { touched[i] = false; id[i] = -1; continue; } if (event.getAction() != MotionEvent.ACTION_MOVE && i != pointerIndex) { // if it's an up/down/cancel/out event, mask the id to see if we should process it for this touch point continue; } int pointerId = event.getPointerId(i); switch (action) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_POINTER_DOWN: touched[i] = true; id[i] = pointerId; x[i] = (int) event.getX(i); y[i] = (int) event.getY(i); break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_POINTER_UP: case MotionEvent.ACTION_OUTSIDE: case MotionEvent.ACTION_CANCEL: touched[i] = false; id[i] = -1; x[i] = (int) event.getX(i); y[i] = (int) event.getY(i); break; case MotionEvent.ACTION_MOVE: touched[i] = true; id[i] = pointerId; x[i] = (int) event.getX(i); y[i] = (int) event.getY(i); break; } } updateTextView(); return true; } } import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.TextView; public class SingleTouchTest extends AppCompatActivity implements OnTouchListener { StringBuilder builder = new StringBuilder(); TextView textView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); textView = new TextView(this); textView.setText("Touch and drag (one finger only)!"); textView.setOnTouchListener(this); setContentView(textView); } public boolean onTouch(View v, MotionEvent event) { builder.setLength(0); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: builder.append("down, "); break; case MotionEvent.ACTION_MOVE: builder.append("move, "); break; case MotionEvent.ACTION_CANCEL: builder.append("cancel, "); break; case MotionEvent.ACTION_UP: builder.append("up, "); break; } builder.append(event.getX()); builder.append(", "); builder.append(event.getY()); String text = builder.toString(); Log.d("TouchTest", text); textView.setText(text); return true; } } import android.app.ListActivity; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; public class AndroidBasicsStarter extends ListActivity { String tests[] = {"SingleTouchTest", "MultiTouchTest"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter( new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, tests) ); } @Override protected void onListItemClick(ListView list, View view, int position, long id) { super.onListItemClick(list, view, position, id); String testName = tests[position]; try { Class clazz = Class.forName("com.example.yuriikarabas.lab_3." + testName); Intent intent = new Intent(this, clazz); startActivity(intent); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } / Висновок: на даній лабораторній роботі я оволодів навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android.
Антиботан аватар за замовчуванням

24.11.2018 15:49

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!