亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • /** * 由于構造方法為private,因此外界只能通過類名.方法名獲得實例 * @return * @param i * @param lifo */ public static ImageLoader getInstance(int i, Type lifo){ //兩重判斷:為了提高效率 if (mInstance == null){ //先判斷是否為空,若是空,則需要創建實例,否 則不需要創建實例,此層過濾到了大部分的代碼 synchronized (ImageLoader.class){ /*因為上步未做同步處理,所以有可能有多個線程進入此步,這時做同步處理,(當然此時需要同步處理的線程就比較少了,提高了效率)線程就只能一個一個往下*/ if (mInstance == null){ /*排隊進來的線程需要再次判斷mInstance是否為空,比如:synchronized之前進來了兩個線程A和B,A先執行if (mInstance == null)判斷,且創建了一個實例, 然后B再接著判斷if (mInstance == null)時,就不需要再次創建實例了*/ mInstance = new ImageLoader(DEFAULT_THREAD_COUNT, Type.LIFO); } } } return mInstance; }
    查看全部
    0 采集 收起 來源:單例模式

    2016-11-04

  • 圖片加載流程: 在gridItem的getView中來進行圖片的查找 getView() { url --> Bitmap //根據url來加載Bitmap url --> LruCache查找 //首先,根據url到LruCache中查找 --> 找到直接返回 --> 找不到的話,根據url -> 創建一個Task -> 將Task加入到TaskQueue 且發送一個通知去提醒后臺輪詢線程 -> 后臺輪詢線程從TaskQueue中提取任務Task -> 將Task發到線程池中去執行->執行的內容如下: Task -- > run(){根據url加載圖片: 1、獲得圖片顯示的大小 2、使用Options對圖片進行壓縮 3、加載圖片且放入LruCache } } 后臺輪詢線程的實現: 不是通過新啟一個線程來不斷的循環,因為這樣效率很低。 new Thread(){ run(){ while(true){ } } }.start(); 我們是通過Handler + Looper + Message來實現
    查看全部
  • lrucache
    查看全部
  • option,處理圖片,
    查看全部
  • 加載圖圖片需要達到的要求
    查看全部
  • 選擇圖片需要對圖片進行壓縮,避免內存溢出
    查看全部
  • popwindow布局
    查看全部
  • lurcache初始化
    查看全部
  • imagerLoader的成員變量
    查看全部
  • 2.1 單例模式兩重判斷,防止兩個線程同時創建對象
    查看全部

舉報

0/150
提交
取消
課程須知
1.掌握Java基礎 2.熟練掌握Android常用技術
老師告訴你能學到什么?
1.單例模式在項目中的實踐 2.圖片的緩存與壓縮 3.線程輪詢與并行 4.反射機制在Android中的使用 5.Handler-線程間通信

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!