Middle
Ako zorganizovať prácu s textom a obrázkami v delegátovi?
sobes.tech AI
Odpoveď od AI
Na prácu s textom môžete použiť rôzne UI komponenty, ako sú TextView, EditText a Button. Formátovanie textu sa vykonáva pomocou HTML alebo Spannable objektov.
Pre prácu s obrázkami sa používa ImageView. Načítanie obrázkov môže byť asynchrónne s využitím knižníc ako Glide, Coil alebo Picasso na caching a optimalizáciu.
Prepojenie dát (textov a/alebo obrázkov) s UI prvkami sa zvyčajne realizuje cez vzor Model-View-ViewModel (MVVM), kde delegát funguje ako View a ViewModel poskytuje dáta.
Príklad použitia 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="Prí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ázok náhradník -->
<TextView
android:id="@+id/textViewContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Príklad textu"
android:layout_marginTop="8dp"/>
</LinearLayout>
V kóde bude logika delegáta spájať dáta s týmito komponentmi. Napríklad v adaptéri RecyclerView v metóde onBindViewHolder:
// V rámci vášho adaptéra
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = dataList[position] // Získanie dátového prvku
holder.textViewTitle.text = item.title
holder.textViewContent.text = item.content
// Načítanie obrázka s Glide
Glide.with(holder.imageViewContent.context)
.load(item.imageUrl)
.placeholder(R.drawable.placeholder_image) // Náhradné obrázok
.error(R.drawable.error_image) // Obrázok pri chybe
.into(holder.imageViewContent)
}
Hlavné body:
- Modelovanie: Používajte XML na definíciu rozloženia.
- Väzba dát: Programovo prepojte dáta z modelu s UI prvkami.
- Asynchrónne načítanie: Používajte knižnice na asynchrónne načítanie obrázkov.
- Optimalizácia: Cacheovanie obrázkov a opätovné použitie View.
- Spracovanie kliknutí: Pridajte poslucháčov kliknutí (
OnClickListener) k UI prvkom podľa potreby.
Tabuľka zodpovedajúcich UI prvkov a typu dát:
| UI prvok | Typ dát | Príklad použitia |
|---|---|---|
TextView |
String |
Zobrazenie textu, nadpisov, popisov. |
EditText |
String |
Vstup textu používateľom. |
Button |
String |
Text na tlačidle. |
ImageView |
Bitmap, Drawable, String (URL) |
Zobrazenie obrázkov. |