溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android開發(fā)中ImageLoder加載網(wǎng)絡(luò)圖片時(shí)如何將圖片設(shè)置為ImageView背景

發(fā)布時(shí)間:2021-07-30 13:46:35 來源:億速云 閱讀:158 作者:小新 欄目:移動開發(fā)

這篇文章主要介紹了Android開發(fā)中ImageLoder加載網(wǎng)絡(luò)圖片時(shí)如何將圖片設(shè)置為ImageView背景,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

最近開始接觸到android的開發(fā),在開發(fā)中使用ImageLoder加載網(wǎng)絡(luò)圖片,但是框架加載的圖片默認(rèn)是通過ImageView的src屬性設(shè)置,所以在某些場合是不符合需求,比如通過設(shè)置src在某些場景下是不能填充滿整個(gè)ImageView,但是通過設(shè)置背景就可以實(shí)現(xiàn),而框架并沒有提供將圖片設(shè)置為背景的方法,我在網(wǎng)上找了半天也看到了一些解決方案,但不是我想要的,于是我決定去看看源碼是怎么實(shí)現(xiàn),果然在源碼中就找到了“新大陸”,壓抑不住內(nèi)心的喜悅趕緊寫博客分享,也算做個(gè)筆記,希望對大家有幫助。

廢話到此為止   開始將進(jìn)入主題(上代碼)

/**
* 加載網(wǎng)絡(luò)圖片設(shè)置為ImageView背景
*
* @param url
* @param view
*/
public void loadImageToBackground(String url, ImageView view) {
  ImageLoader.getInstance().displayImage(url, new BgImageViewAware(view));
}

上面這個(gè)方法就是一個(gè)簡單的使用ImageLoder加載網(wǎng)絡(luò)圖片的例子,如果要將圖片設(shè)置為背景,其核心部分就在 BgImageViewAware這個(gè)類里面,BgImageViewAware是一個(gè)自定義的類,它繼承自ImageViewAware這個(gè)類,我在看源碼的時(shí)候發(fā)現(xiàn)ImageLoder就是通過 ImageViewAware這個(gè)類把加載的圖片設(shè)置到src屬性的(有興趣的小伙伴可以自己去看源碼,源碼我就不貼出來了),所以我只需要重寫這個(gè)類的方法將圖片設(shè)置到背景就解決了

下面是BgImageViewAware類的代碼:

/**
 * <pre>將圖片設(shè)置為ImageView的背景</pre>
 * Created by ZCM on 2016/8/5. version 1.0
 */
public class BgImageViewAware extends ImageViewAware {
  public BgImageViewAware(ImageView imageView) {
    this(imageView, true);
  }
  public BgImageViewAware(ImageView imageView, boolean checkActualViewSize) {
    super(imageView, checkActualViewSize);
  }
  @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
  @Override
  public boolean setImageBitmap(Bitmap bitmap) {
    //重寫父類方法,將圖片設(shè)為背景
     if(Looper.myLooper() == Looper.getMainLooper()) {
      ImageView imageView = (ImageView)this.imageViewRef.get();
      if(imageView != null) {
        imageView.setBackground(new BitmapDrawable(bitmap));
        return true;
      }
    }
    return false;
  }
  @Override
  public boolean setImageDrawable(Drawable drawable) {
    return super.setImageDrawable(drawable);
  }
}

到了這一步,將圖片設(shè)置為ImageView的背景的整個(gè)功能算是我完成了(其實(shí)很簡單^_^)

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Android開發(fā)中ImageLoder加載網(wǎng)絡(luò)圖片時(shí)如何將圖片設(shè)置為ImageView背景”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI