RecyclerView,ListView,GridView等UI控制項使用及其最佳化和圖片錯位-->

來源:互聯網
上載者:User

標籤:

--------------------------------圖片錯位問題---------------------------------------

法一:

1:先將圖片預設為本地一個佔位圖片。(重要!很多錯位情況在於複用了其他位置的圖片緩衝,而當前圖片遲遲載入不出來,導致當前圖片錯位。所以解決之道是先用本地佔位元影像片,快速重新整理當前圖片。等載入完畢之後,就可以替換掉佔位圖片了。);

2:通過ImageView.setTag,把url記錄在圖片內部;

3:把url放進一個請求隊列,(這是避免圖片很大,請求耗時很長,重複發起url請求);

4:如果請求隊列存在url,則將老的url對應圖片控制項,替換為本次請求圖片控制項,返回;

5.如果當前url和第一步ImageView.getTag一致,則用新的資料來源更新圖片,否則返回;

6.如果是重複使用的圖片,最好就是訪問之後,寫入到本機存放區上,避免耗時網路請求。

法二:

使用弱引用關聯(具體操作不太清楚!!!)

法三:

使用Volley架構提供的NetworkImageView:

  private void netRequestImage(){

    ImageLoader loader = new ImageLoader(MyApplication.requestQueue, new ImageLoader.ImageCache() {
      @Override
      public Bitmap getBitmap(String url) {
        return null;
      }

      @Override
      public void putBitmap(String url, Bitmap bitmap) {

      }
    });
    iv3.setDefaultImageResId(R.mipmap.ic_launcher);
    iv3.setErrorImageResId(R.mipmap.ic_launcher);
    iv3.setImageUrl("http://pic14.nipic.com/20110522/7411759_164157418126_2.jpg",loader);
  }

-------------------三種控制項的使用----------------------

1、準備資料來源

2、建立適配器

3、載入適配器

--------------------------最佳化問題-----------------------

1、如果自訂配接器,那麼在getView方法中要考慮方法傳進來的參數contentView是否為null,如果為null就建立contentView並返回,如果不為null則直接使用。在這個方法中儘可能少建立view。

2、給contentView設定tag(setTag()),傳入一個viewHolder對象,用於緩衝要顯示的資料,可以達到映像資料非同步載入的效果。

3、如果listview需要顯示的item很多,就要考慮分頁載入。比如一共要顯示100條或者更多的時候,我們可以考慮先載入20條,等使用者拉到列表底部的時候再去載入接下來的20條。

4、控制線程數量 + 資料分頁載入;

5、重寫onScrollStateChanged方法;

RecyclerView,ListView,GridView等UI控制項使用及其最佳化和圖片錯位-->

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.