Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
/
Лабораторна робота №3
з предмету:
«Мережні операційні системи»
на тему:
«Управління вводом/виводом та сенсорною підсистемою в ОС Android»
МЕТА: Оволодіти навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android.
Завдання: Програма контролю дотиків до сенсорного екрану, інтерфейс простої форми для вводу даних.
Перелік основних елементів інтерфейсу Android-пристрою
TextView - призначений для відображення тексту без можливості редагування його користувачем
RelativeLayout - для кожного елемента налаштовується його положення щодо інших елементів
LinearLayout - відображає View-елементи у вигляді одного рядка (якщо він Horizontal) або одного стовпчика (якщо він Vertical)
TableLayout - відображає елементи у вигляді таблиці, по рядках і стовпцях
AbsoluteLayout - для кожного елемента вказується явна позиція на екрані в системі координат (x, y)
ViewGroup - це Layout. Layout бувають різних типів і відповідаєють за те, як будуть розташовані їх дочірні View на екрані (таблицею, рядком, стовпцем ...)
Button - кнопка
CheckBox - чекбокс
Plain Text - найпростіший варіант текстового поля без наворотів.
EditText - це текстове поле для призначеного для користувача введення, яке використовується, якщо необхідно редагування тексту.
Лістинг тестової програми
AndroidBasicStarter.java
package com.badlogic.androidgames;import android.app.ListActivity;import android.content.Intent;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", "KeyTest" }; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter<String>(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.badlogic.androidgames." + testName); Intent intent = new Intent(this, clazz); startActivity(intent); } catch (ClassNotFoundException e) { e.printStackTrace(); } }}
KeyTest.java
package com.badlogic.androidgames;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.View;import android.view.View.OnKeyListener;import android.widget.EditText;import android.widget.TextView;public class KeyTest extends Activity { StringBuilder builder = new StringBuilder(); //TextView textView; EditText editText; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); editText = new EditText(this); setContentView(editText); }}
SingleTouchTest.java
package com.badlogic.androidgames;import android.app.Activity;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 Activity 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); } @Override 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("cancle, "); 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; }}
MultiTouchTest.java
package com.badlogic.androidgames;import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.TextView;public class MultiTouchTest extends Activity implements OnTouchListener { StringBuilder builder = new StringBuilder(); TextView textView; float[] x = new float[10]; float[] y = new float[10]; boolean[] touched = new boolean[10]; private void updateTextView() { builder.setLength(0); for(int i = 0; i < 10; i++) { builder.append(touched[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); } @Override 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 pointerId = event.getPointerId(pointerIndex); switch (action) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_POINTER_DOWN: touched[pointerId] = true; x[pointerId] = (int)event.getX(pointerIndex); y[pointerId] = (int)event.getY(pointerIndex); break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_POINTER_UP: case MotionEvent.ACTION_CANCEL: touched[pointerId] = false; x[pointerId] = (int)event.getX(pointerIndex); y[pointerId] = (int)event.getY(pointerIndex); break; case MotionEvent.ACTION_MOVE: int pointerCount = event.getPointerCount(); for (int i = 0; i < pointerCount; i++) { pointerIndex = i; pointerId = event.getPointerId(pointerIndex); x[pointerId] = (int)event.getX(pointerIndex); y[pointerId] = (int)event.getY(pointerIndex); } break; } updateTextView(); return true; }}
Результат роботи програми
/
Рис.1
/
Рис.2
/
Рис.3
Висновок: Виконавши дану лабораторну роботу я оволодів навичками програмування і управління вводом/виводом й сенсорною підсистемою в ОС Android.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!