Similar presentations:
Разработка мобильных приложений
1. Разработка мобильных приложений
федеральное государственное бюджетное образовательное учреждениевысшего образования
«ТОЛЬЯТТИНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Разработка мобильных
приложений
Тонких Артём Петрович
старший преподаватель кафедры
«Прикладная математика и информатика»
© ТГУ, 2021
2.
Подключить телефон - https://developer.android.com/studio/run/device3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
Material Design https://material.io/design/introductio
n/#principles
58.
dp https://material.io/design/layout/understandinglayout.html#pixeldensity
59.
60.
61.
sp https://material.io/design/typography
/#type-scale
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
color https://material.io/design/color
/#
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
https://developer.android.com/guide/topics/ui/layout/linear
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
https://developer.android.com/guide/topics/ui/layout/relative.htmlhttps://developer.android.com/training/constraintlayout/index.html
https://developer.android.com/guide/topics/ui/layout/gridview
https://developer.android.com/guide/topics/ui/layout/listview
https://developer.android.com/guide/topics/ui/layout/recyclervie
w
https://github.com/google/flexbox-layout
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128. Надпись (TextView)
Используется для вывода текста.•Для изменения размера используется атрибут android:textSize:
android:textSize="14sp"
•Определение в XML
<TextView
android:id="@+id/textview" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/text" />
•Использование надписи в коде активности TextView tV =
(TextView) findViewById(R.id.textview); textView.setText("Some other
string");
129. Текстовое поле (EditText)
Аналог надписи, но с возможностью редактирования.•Определение в XML
<EditText
android:id="@+id/edit_text" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:hint="@string/edit_text"
/>
•Атрибут android:inputType="number"
phone - предоставляет клавиатуру для ввода номеров.
textPassword - предоставляет клавиатуру для ввода пароля.
textCapSentences - первое слово начинается с прописной буквы.
textAutoCorrect - автоматически исправляет вводимый текст.
•Использование в коде активности
EditText editText = (EditText) findViewById(R.id.edit_text); String text =
editText.getText().toString();
130. Кнопка (Button)
• Определение в XML<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_text" />
• Использование в коде активности
android:onClick="onButtonClicked"
Затем в активности определяется метод следующего вида:
/** Вызывается при щелчке на кнопке */ public void
onButtonClicked(View view) {
// Сделать что-то по щелчку на кнопке
}
131. Вывод изображений на кнопках (Button)
• Вывод текста и изображения на кнопкеВывести графический ресурс android в правой части кнопки.
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableRight="@drawable/android"
android:text="@string/click_me" />
Чтобы изображение располагалось слева от текста, воспользуйтесь
атрибутом android:drawableLeft:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/android"
android:text="@string/click_me" />
132. Двухпозиционная кнопка (ToggleButton)
Щелкая на двухпозиционной кнопке, пользователь выбирает одно из двух состояний.•Определение в XML
<ToggleButton android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textOn="@string/on" android:textOff="@string/off" />
•Использование в коде активности
android:onClick="onToggleButtonClicked"
Затем в активности определяется метод следующего вида:
/** Вызывается при щелчке на двухпозиционной кнопке*/ public void onToggleClicked(View view) {
// Получить состояние двухпозиционной кнопки. boolean on = ((ToggleButton) view).isChecked();
if (on) {
// Вкл
} else {
// Выкл
}
}
133. Переключатель(Switch)
Выключатель представляет собой рычажок, который работает потому же принципу, что и двухпозиционная кнопка.
•Определение в XML
<Switch
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textOn="@string/on" android:textOff="@string/off" />
•Использование в коде активности
android:onClick="onSwitchClicked"
Затем в активности определяется метод следующего вида:
/** Вызывается при щелчке на выключателе. */ public void onSwitchClicked(View view) {
// Включенное состояние?
boolean on = ((Switch) view).isChecked(); if (on) {
// Вкл
} else {
// Выкл
}
}
134. Флажки (CheckBox)
Флажки (check boxes) предоставляют пользователю набор независимых вариантов.Каждый флажок может устанавливаться или сниматься независимо от всех остальных
флажков.
•Определение в XML
<CheckBox
…
android:text="@string/content1" />
<CheckBox
…
android:text="@string/content2" />
•Использование в коде активности
CheckBox cb = (CheckBox) findViewById(R.id.check); boolean checked = checkbox.isChecked();
if (checked) {
//Действия для установленного флажка
}
135. Переключатели (RadioButton)
Переключатели (RadioButton)
Переключатели предоставляют набор вариантов, из которого
пользователь может выбрать ровно один вариант:
•Определение в XML
<RadioGroup android:id="@+id/radio_group" android:layout_width="match_parent"
android:layout_height="wrap_content" android:orientation="vertical">
<RadioButton android:id="@+id/radio_circle" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/circle" />
<RadioButton android:id="@+id/radio_square"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/square" />
</RadioGroup>
136. Раскрывающийся список (Spinner)
Раскрывающийся список содержит набор значений, изкоторых
пользователь может выбрать только одно.
Определение в XML
<Spinner
android:id="@+id/spinner" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/spinner_values" />
Массив строк добавляется в файл strings.xml :
<string-array name="spinner_values">
<item>New Delphi</item>
<item>Haryana</item>
<item>Bihar/item>
<item>Guijrat</item>
</string-array>
Использование в коде активности
Spinner spinner = (Spinner) findViewById(R.id.spinner); String string =
String.valueOf(spinner.getSelectedItem());
137. Графическое представление (ImageView)
• Определение в XML макета<ImageView android:layout_width="200dp" android:layout_height="100dp"
android:src="@drawable/logo"
android:contentDescription="@string/logo" />
Ресурсы изображений снабжаются префиксом @drawable, который сообщает
Android, что ресурс изображения хранится в одной или нескольких папках
drawable.
• Использование в коде активности
ImageView photo = (ImageView)findViewById(R.id.photo); int image =
R.drawable.logo;
String description = "This is the logo"; photo.setImageResource(image);
photo.setContentDescription(description);
138. Графическая кнопка (ImageButton)
Графическая кнопка почти не отличается от обычной — просто на ней выводится только изображение,без текста.
•Определение в XML
<ImageButton android:id="@+id/button"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/button_icon />
•Использование в коде активности
android:onClick="onButtonClicked"
Затем в активности определяется метод следующего вида:
/** Вызывается при щелчке на кнопке */ public void onButtonClicked(View view) {
// Сделать что-то по щелчку на кнопке
}
139. Прокручиваемые представления (ScrollView)
•Чтобы добавить вертикальную полосу прокрутки, заключите существующий макет в элемент<ScrollView>:
<ScrollView 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" tools:context=".MainActivity" >
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="16dp"
android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="16dp" android:orientation="vertical" >
...
</LinearLayout>
<ScrollView
•Чтобы добавить в макет горизонтальную полосу прокрутки, заключите существующий макет в
элемент <HorizontalScrollView>.
140. Уведомления (Toast)
Уведомления выполняют чисто информационные функции,пользователь не может с ними взаимодействовать. Пока
уведомление находится на экране, активность остается
видимой и доступной для взаимодействия с пользователем.
Уведомление автоматически закрывается по истечении
тайм-аута.
•Использование в коде активности:
1.Уведомления создаются только в коде активности;
2.Определить их в макете невозможно.
CharSequence text = "Hello, I'm a Toast!"; int duration =
Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(this, text, duration); toast.show();
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
https://developer.android.com/reference/java/lang/StringBuilder209.
210.
211.
212.
213.
214.
215.
216. Intent
Запустить другое приложение
Открыть файл
Перейти на другой экран
Бывают: явные (explicit) и неявные (implicit)
Activity 1
Intent
Activity 2
Activity 3
https://developer.android.com/reference/android/content/Intent
21
6
217. Виды Intent
Явные(Explicit) интенты:•Адресуются конкретному компоненту(с помощью component name)
•Обычно используется для запуска внутренних компонентов
Неявные(Implicit) интенты:
•Не имеют конкретного адресата
•Обычно используются для запуска компонентов сторонних приложений
•Система находит наиболее подходящие компоненты(или несколько)
21
7
218. Обычно содержат
Имя компонента
Действие – action (ACTION_VIEW, ACTION_EDIT и т.д.)
Категория – category (CATEGORY_LAUNCHER, CATEGORY_BROWSABLE)
Данные – data (URI)
Дополнительные параметры – extras*
*Например, при создании объекта Intent для отправки сообщения электронной почты с
методом ACTION_SEND можно указать получателя с помощью ключа EXTRA_EMAIL, а тему сообщения
― с помощью ключа EXTRA_SUBJECT.
https://developer.android.com/reference/android/content/Intent
21
8
219. Переход на новую активность при помощи Intent
отдаетпринимает
21
9
220. Переход в другое приложение
неявныйintent
явный
intent
22
0
221. Выбор приложения для запуска
Метод createChooser()позволяет выбрать
приложение
22
1
222. Intent Filter
Указываются в AndroidManifest.xmlactivity
service
22
2
223. Intent Filter
Указываются в AndroidManifest.xmlreceiver
22
3
224. Intent Filter
Intent-Filter можно не указывать, если в нёмнет необходимости.
22
4
225. Что будем делать ч.1
225
226. Что будем делать ч.2
226
227. Что будем делать ч.2
227
228. Что будем делать ч.2
228
229.
Активити и интентыСоздание приложения «Передача данных»
(Тонких Артём Петрович)
programming