Евгений Колесников 3 年 前
コミット
4e0667893d
1 ファイル変更40 行追加10 行削除
  1. 40 10
      articles/f6_demo_1.md

+ 40 - 10
articles/f6_demo_1.md

@@ -529,7 +529,7 @@ Email проверяется на удовлетворение шаблону и
 Реализован выбор источника фотографии | 0.2
 **Итого** | 3.2
 
-## Запрос данных пользователя
+### Запрос данных пользователя
 
 ![](../img/f6_017.png)
 
@@ -563,9 +563,9 @@ Http.call(
 
 ![](../img/f6_020.png)
 
-## Изменение аватарки пользователя
+### Изменение аватарки пользователя
 
-### Выбор источника (камера или галерея) с помощью диалогового окна
+#### Выбор источника (камера или галерея) с помощью диалогового окна
 
 С диалоговыми окнами мы уже знакомы (мы их используем для вывода текста ошибок). У класса **AlertDialog** есть метод, позволяющий сделать выбор из массива:
 
@@ -594,7 +594,7 @@ AlertDialog.Builder(this)
 
 Я в примере выше просто вывожу на экран номер выбранного элемента и закрываю диалог (*dialog.dismiss()*). Вам нужно в зависимости от выбранного элемента либо показать Галерею, либо открыть приложение Камера (можно прямо тут, но можно и выделить в отдельную лямбда функцию).
 
-### Открытие Галереи
+#### Открытие Галереи
 
 Открытие внешних программ (активностей) осуществляется тем же вызовом класса **Intent**. Только в параметрах мы должны передавать не контекст (*this*), а тип нужной нам активности.
 
@@ -635,7 +635,7 @@ override fun onActivityResult(
 }
 ```
 
-### Отправка MultiPart запроса 
+#### Отправка MultiPart запроса 
 
 >Класс **StreamHelper**, используемый при получении файла, лежит в [шпаргалках](../shpora/StreamHelper.kt)
 
@@ -717,10 +717,8 @@ private fun sendFile(fileUri: Uri) {
 ---------|:----:
 Реализован запрос списка чатов пользователя | 0.5
 Реализован запрос сообщений чата | 0.5
-Ячейка таблицы соответствует макету (оценивается верстка).Корректно реализованы 3 элемента: изображение, название, подзаголовок (минус 0,1 за каждый отсутствующий или
-некорректный элемент). | 0.3
-В подзаголовке отображается последнее сообщение
-для данного чата | 0.2
+Ячейка таблицы соответствует макету (оценивается верстка).Корректно реализованы 3 элемента: изображение, название, подзаголовок (минус 0,1 за каждый отсутствующий или некорректный элемент). | 0.3
+В подзаголовке отображается последнее сообщение для данного чата | 0.2
 Текст сообщения обрезается до двух строк | 0.2
 Реализовано отображение аббревиатуры согласно Заданию | 0.3
 **Итого** | 2
@@ -741,7 +739,39 @@ private fun sendFile(fileUri: Uri) {
 
 Для вывода постера нужно иметь список фильмов. Можно запросить его ещё раз, а можно в главном окне хранение фильмов сделать не в свойствах класса активности, а в свойствах класса приложения (там, где вы храните токен)
 
-<!-- TODO сделать аббревиатуру названия фильма -->
+Для переключения типа аватарки фото/аббревиатура можно применить такую вёрстку:
+
+```xml
+<androidx.cardview.widget.CardView
+    android:layout_width="100dp"
+    android:layout_height="match_parent"
+    app:cardCornerRadius="50dp"
+    >
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="#fee"
+            android:textSize="50dp"
+            android:gravity="center"
+            android:text="НФ"
+            android:visibility="visible"
+            />
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:src="@drawable/videocamera2"
+            android:visibility="gone"
+            />
+    </FrameLayout>
+</androidx.cardview.widget.CardView>
+```
+
+**CardView** задаёт форму и размер, **FrameLayout** позволит выводить и текст и изображение в одном месте, а атрибутом *visibility* включается/выключается нужный элемент. 
+
+Текст в **TextView**, надеюсь, напишете сами
 
 ### Вывод двух строк в TextView