Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
💾 Data, Network और Architecture  ·  Lesson 34

Glide से Images load करें

Image library क्यों?

हाथ से images load करने का मतलब: background thread पर download, decode, view size पर resize, caching, row scroll होने पर cancel… Glide यह सब एक line में करता है।

URL / File / UriGlidebackground पर downloadview size पर resizememory बचाओmemory + disk cacheअगली बार instantImageView
एक Glide call क्या करती है

Setup

TOML + Kotlin DSL + XML
# libs.versions.toml
glide = "4.16.0"
glide = { group = "com.github.bumptech.glide", name = "glide", version.ref = "glide" }

// app/build.gradle.kts
implementation(libs.glide)

<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.INTERNET" />

URL से load

Kotlin
Glide.with(this)                                  // Activity, Fragment or View
    .load("https://codingeasily.in/assets/img/tutorials/android/tip-1.png")
    .into(binding.ivTip)

Placeholder, error, crop

Kotlin
Glide.with(this)
    .load(product.imageUrl)
    .placeholder(R.drawable.ic_image)             // while loading
    .error(R.drawable.ic_broken_image)            // if it fails
    .centerCrop()
    .into(binding.ivProduct)

// round avatar
Glide.with(this).load(user.photoUrl).circleCrop().into(binding.ivAvatar)

// rounded corners (16 px) after centerCrop
Glide.with(this).load(url)
    .transform(CenterCrop(), RoundedCorners(16))
    .into(binding.ivBanner)

// fade in
Glide.with(this).load(url).transition(DrawableTransitionOptions.withCrossFade()).into(binding.ivBanner)
9:41▮▮ 85%Products⋮🛍️Loading…⏳🛍️Loading…⏳🛍️Watch₹1,499🛍️Bag₹7999:41▮▮ 85%Profile⋮RRiya SharmacircleCrop() avatar🖼️RoundedCorners(16) banner
Loading के दौरान placeholders, circle और rounded crops

RecyclerView में images

Kotlin
override fun onBindViewHolder(holder: VH, position: Int) {
    val p = getItem(position)
    holder.binding.tvName.text = p.name
    Glide.with(holder.binding.ivThumb)            // bind to the view → auto-cancel on recycle
        .load(p.imageUrl)
        .placeholder(R.drawable.ic_image)
        .centerCrop()
        .into(holder.binding.ivThumb)
}

Local files और photos

Kotlin
// Student Diary – photo copied into app storage (File)
note.imagePath?.let { Glide.with(b.ivThumb).load(File(it)).centerCrop().into(b.ivThumb) }

// content:// Uri from the photo picker
Glide.with(this).load(uri).into(binding.ivPhoto)

// a drawable resource
Glide.with(this).load(R.drawable.banner).into(binding.ivBanner)

Caching

Kotlin
// Glide caches in memory + on disk automatically.
// Force a fresh download (e.g. a profile photo that changed on the server):
Glide.with(this).load(url)
    .diskCacheStrategy(DiskCacheStrategy.NONE)
    .skipMemoryCache(true)
    .into(binding.ivAvatar)

// Better: change the URL when the image changes – https://…/avatar.jpg?v=3

आम गलतियाँ

  • Fragment में Glide.with(applicationContext) → screen के साथ requests cancel नहीं होतीं; fragment या view use करें।
  • 80dp thumbnails के लिए बड़ी server images (3000px) → data बर्बाद; API से छोटी images दें।
  • Lists में placeholder नहीं → recycled rows में पुरानी images चमकती हैं।

सारांश

  • Glide.with(x).load(source).into(imageView) — source URL, File, Uri या resource हो सकता है।
  • placeholder/error, centerCrop/circleCrop/RoundedCorners जोड़ें।
  • Caching और recycling आपके लिए handled हैं।
✅ Practice

android-tips.json की tip images को rounded corners, placeholder और cross-fade के साथ 2-column grid में दिखाइए।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Glide या Coil?
दोनों बढ़िया हैं। View-based apps के लिए Glide पुराना standard है और यहाँ use हुआ है। Coil Kotlin-first है और Jetpack Compose के साथ popular है।
क्या Glide के लिए INTERNET permission चाहिए?
हाँ, http(s) images load करने के लिए। Local files और resources के लिए नहीं।
मेरी list में images थोड़ी देर गलत picture क्यों दिखाती हैं?
Recycled rows पिछली image दिखाती हैं। हर bind पर Glide.with(view).load(...).into(view) call करने से Glide पुरानी requests अपने आप cancel करता है; placeholder भी set करें।
← Android Tutorial (Kotlin)
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

अगला topicRuntime Permissions आपकी प्रगति: 34 / 43 (79%) · Lesson 35 / 43 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें