Управління вводом/виводом та сенсорною підсистемою в ОС 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:11-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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