Sobes.tech
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ů.