Middle
Jak zorganizovat práci s textem a obrázky v delegátovi?
sobes.tech AI
Odpověď od AI
Pro práci s textem lze použít různé UI komponenty, jako jsou TextView, EditText a Button. Formátování textu se provádí pomocí HTML nebo Spannable objektů.
Pro práci s obrázky se používá ImageView. Načítání obrázků může být asynchronní s využitím knihoven jako Glide, Coil nebo Picasso, které umožňují cachování a optimalizaci.
Vázání dat (textů a/nebo obrázků) s UI prvky se obvykle realizuje přes vzor Model-View-ViewModel (MVVM), kde delegát funguje jako View a ViewModel poskytuje data.
Příklad použití TextView a ImageView v XML:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textViewTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Příklad nadpisu"
android:textSize="18sp"
android:textStyle="bold"/>
<ImageView
android:id="@+id/imageViewContent"
android:layout_width="match_parent"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/placeholder_image"/> <!-- Obrázek náhradní -->
<TextView
android:id="@+id/textViewContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Příklad textu"
android:layout_marginTop="8dp"/>
</LinearLayout>
V kódu bude logika delegáta spojovat data s těmito komponentami. Například v adapteru RecyclerView v metodě onBindViewHolder:
// V rámci vašeho adapteru
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = dataList[position] // Získání datového prvku
holder.textViewTitle.text = item.title
holder.textViewContent.text = item.content
// Načítání obrázku (příklad s Glide)
Glide.with(holder.imageViewContent.context)
.load(item.imageUrl)
.placeholder(R.drawable.placeholder_image) // Náhradní obrázek
.error(R.drawable.error_image) // Obrázek při chybě
.into(holder.imageViewContent)
}
Hlavní body:
- Morfologie: Používejte XML pro definici rozvržení.
- Vazba dat: Programově spojte data z modelu s UI prvky.
- Asynchronní načítání: Používejte knihovny pro asynchronní načítání obrázků.
- Optimalizace: Cachování obrázků a opětovné použití View.
- Zpracování kliknutí: Přidávejte posluchače kliknutí (
OnClickListener) k UI prvkům podle potřeby.
Tabulka odpovídající UI prvků a typu dat:
| UI prvek | Typ dat | Příklad použití |
|---|---|---|
TextView |
String |
Zobrazení textu, nadpisů, popisů. |
EditText |
String |
Vstup textu uživatelem. |
Button |
String |
Text na tlačítku. |
ImageView |
Bitmap, Drawable, String (URL) |
Zobrazení obrázků. |