欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android通過layer-list設(shè)置默認(rèn)加載錯誤圖片的實現(xiàn)方案

 更新時間:2025年04月27日 08:46:32   作者:_小馬快跑_  
在需求開發(fā)中,經(jīng)常會遇到需要展示圖片列表的情況,然而,由于網(wǎng)絡(luò)問題、圖片鏈接失效等原因,某些圖片可能無法正常加載,為了優(yōu)化用戶體驗,通常會為加載失敗的圖片提供一個默認(rèn)的占位圖,所以本文給大家介紹了Android通過layer-list設(shè)置默認(rèn)加載錯誤圖片的實現(xiàn)方案

背景

在需求開發(fā)中,經(jīng)常會遇到需要展示圖片列表的情況。然而,由于網(wǎng)絡(luò)問題、圖片鏈接失效等原因,某些圖片可能無法正常加載。為了優(yōu)化用戶體驗,通常會為加載失敗的圖片提供一個默認(rèn)的占位圖。

在常規(guī)的實現(xiàn)方式中,可能會直接使用一張默認(rèn)圖片來作為占位圖(如果是個單色 圖,可以直接用一個drawable文件)。然而,如果圖片列表里每個Item寬高比都是變化的時候,默認(rèn)圖片會因為寬高比不同而導(dǎo)致變形,雖然可以通過 ImageView 的 scaleType 設(shè)置 CENTER_CROP 以適應(yīng)不同的圖片比例不變形,但如果默認(rèn)圖片本身包含一個居中的小圖標(biāo),在不同的寬高比下,小圖標(biāo)的顯示效果可能會變形或錯位。

問題分析

假設(shè)我們的默認(rèn)錯誤圖片是如下所示的樣式(背景色 + 一個居中的錯誤圖標(biāo)):

如果我們將其合成一張完整的 PNG 圖片并使用 CENTER_CROP 適配不同的 ImageView 尺寸,可能會遇到兩個問題: 1. 小圖標(biāo)會跟隨圖片裁剪,可能會放大、變形,導(dǎo)致顯示不一致。 2. 不同比例的 ImageView 會截取不同區(qū)域,導(dǎo)致小圖標(biāo)的位置和大小不可控。

為了解決這個問題,可以換一種思路,利用 layer-list 來動態(tài)組合背景和圖標(biāo),從而確保小圖標(biāo)始終保持固定大小和居中位置。

解決方案:使用 layer-list

在 drawable 資源中,layer-list 允許我們疊加多個圖層,可以將背景和圖標(biāo)分開定義,保證不同尺寸的 ImageView 顯示時,背景始終鋪滿,而小圖標(biāo)始終居中,且不會因裁剪而變形。其中小圖片的資源如下:

  • 創(chuàng)建 layer-list 資源文件

在 res/drawable/ 目錄下創(chuàng)建 drawable_default_error.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 背景矩形 -->
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/gray_normal" /> <!-- 設(shè)置背景顏色 -->
        </shape>
    </item>

    <!-- 居中的錯誤圖標(biāo) -->
    <item
        android:width="60dp"
        android:height="60dp"
        android:gravity="center">
        <bitmap
            android:gravity="center"
            android:src="@drawable/chat_ask_message_error" />
    </item>
</layer-list>
  • 代碼中使用 layer-list

在使用 Glide 或其他圖片加載框架時,我們可以直接將 drawable_default_error.xml 作為 placeholder 和 error 資源:

Glide.with(activity)
    .load(url)
    .placeholder(R.drawable.drawable_default_error) // 加載中顯示的占位圖
    .error(R.drawable.drawable_default_error) // 加載失敗時顯示的默認(rèn)圖
    .into(imageView)

效果展示

當(dāng)圖片加載失敗時,ImageView 會顯示 drawable_default_error.xml 組合的背景 + 圖標(biāo),效果如下:

相比直接使用一張完整的 PNG 圖片,layer-list 方案的優(yōu)點:

  • 保證背景始終填充整個 ImageView,不會因為 scaleType 而變形。
  • 小圖標(biāo)始終保持固定大小,居中不變形,適應(yīng)不同的 ImageView 尺寸。
  • 支持動態(tài)調(diào)整背景色或小圖標(biāo),無需重新制作整張圖片,維護(hù)更方便。

總結(jié)

在 Android 開發(fā)中,layer-list 是一個非常實用的 Drawable 資源,它可以將多個層疊的圖形、顏色、圖片等組合在一起,實現(xiàn)復(fù)雜的視覺效果。在需要為加載失敗的圖片提供占位圖時,使用 layer-list 可以保證背景填充、圖標(biāo)居中且不會變形。

以上就是Android通過layer-list設(shè)置默認(rèn)加載錯誤圖片的實現(xiàn)方案的詳細(xì)內(nèi)容,更多關(guān)于Android layer-list默認(rèn)加載錯誤圖片的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Android實現(xiàn)閃屏效果

    Android實現(xiàn)閃屏效果

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)閃屏效果,實現(xiàn)“一閃而過”效果進(jìn)入頁面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android仿京東、天貓下拉刷新效果

    Android仿京東、天貓下拉刷新效果

    這篇文章主要為大家詳細(xì)介紹了Android仿京東、天貓下拉刷新效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Flutter折疊控件使用方法詳解

    Flutter折疊控件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Flutter折疊控件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Android獲取SD卡上圖片和視頻縮略圖的小例子

    Android獲取SD卡上圖片和視頻縮略圖的小例子

    如果我們需要快速提取圖片和視頻縮略圖可以直接訪問android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails這兩個數(shù)據(jù)庫,即可查詢出來縮略圖 。
    2013-06-06
  • 簡單實現(xiàn)Android滾動公告欄

    簡單實現(xiàn)Android滾動公告欄

    這篇文章主要為大家詳細(xì)介紹了如何簡單實現(xiàn)Android滾動公告欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • WebView 實現(xiàn)全屏播放視頻的示例代碼

    WebView 實現(xiàn)全屏播放視頻的示例代碼

    這篇文章主要介紹了WebView 實現(xiàn)全屏播放視頻的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Android ListView常用小技巧匯總

    Android ListView常用小技巧匯總

    這篇文章為大家詳細(xì)介紹了Android ListView常用小技巧,幫助大家更好的開發(fā)Android項目,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Android?DataBinding布局的加載深入探究

    Android?DataBinding布局的加載深入探究

    看了谷歌官方文章確實寫的太簡略了,甚至看完之后有很多地方還不知道怎么回事兒或者怎么用,那么接下來我將通過文章全面介紹一下DataBinding布局的加載
    2022-11-11
  • Android通過SharedPreferences實現(xiàn)自動登錄記住用戶名和密碼功能

    Android通過SharedPreferences實現(xiàn)自動登錄記住用戶名和密碼功能

    最近使用SharedPreferences實現(xiàn)了一個android自動登錄功能,特此分享到腳本之家平臺供大家參考
    2017-07-07
  • Android實現(xiàn)自動輪詢的RecycleView

    Android實現(xiàn)自動輪詢的RecycleView

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)自動輪詢的RecycleView,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10

最新評論