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

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android必學-異步加載

難度中級
時長 1小時57分
學習人數
綜合評分9.70
220人評價 查看評價
9.9 內容實用
9.7 簡潔易懂
9.5 邏輯清晰
  • 優化異步加載要點
    查看全部
    0 采集 收起 來源:總結

    2015-11-16

  • 實現接口以后不要忘記要注冊,否則就白實現了
    查看全部
  • 取消所有加載任務
    查看全部
  • 直接通過URL獲取網絡數據,返回一個字節流,字符流可以把字節流包裹,buffer又可以把字符流包起來
    查看全部
    0 采集 收起 來源:獲取Json數據

    2015-11-16

  • 異步加載——Thread方式 1. 將url轉換成Bitmap 通過InputStream,調用BitmapFactory.decodeStream()方法將url String轉換成一個bitmap并返回。 public Bitmap getBitmapFromURL(String urlString) { Bitmap bitmap; InputStream is = null; try { URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); is = new BufferedInputStream(connection.getInputStream()); //從urlString中獲取InputStream bitmap = BitmapFactory.decodeStream(is); //通過decodeStream獲取bitmap return bitmap; } 2. 從getBitmapFromURL()獲得的bitmap對象是不能直接設置給ImageView的 按照android單線程模型,非主線程是不能在此線程中直接更新UI的,可以通過一個Handler來傳遞帶有bitmap的消息給主線程,讓主線程的handler更新UI。 如圖: (1)開辟一個線程,在線程中將url轉換成bitmap (2)通過sendMessage()以消息的形式將bitmap發送給主線程的Handler (3)在Handler中設置bitmap給ImageView 3. 為了保證ListView每行數據中的ImageView能夠正確顯示,在Adapter的getView()方法中為每個ImageView設置一個tag String urlString = newsBean.imageUrl; viewHolder.imageView.setTag(urlString); 主線程的Handler中更新UI時,會判斷這個tag,是否是對應的。 if(mImageView.getTag().equals(urlString)) mImageView.setImageBitmap((Bitmap) msg.obj);
    查看全部
    0 采集 收起 來源:使用Thread

    2015-11-16

  • 在異步加載中,當網絡環境不是很好情況下,ListView本身的緩沖機制可能會造成ListView的item顯示錯亂。 兩種方法可以避免這種問題: 1. 將當前的item與原始數據綁定 例如上一筆記中,在Adapter的getView()方法中為每個ImageView設置一個url的tag String urlString = newsBean.imageUrl; viewHolder.imageView.setTag(urlString); 在主線程的Handler中真正加載進行更新UI時,會判斷這個tag是否是對應的。只有當tag是正確時才會真正做設置item的操作 if(mImageView.getTag().equals(urlString)) mImageView.setImageBitmap((Bitmap) msg.obj); 2. 使用成員變量將對應的數據進行緩存,這種方式就相當于BaseAdapter中使用ViewHolder是一樣的。
    查看全部
    0 采集 收起 來源:使用Thread

    2015-11-16

  • Bitmap-刷新ListView加載: 問題是解決:緩存的圖片對正確的圖片加載時的影響~ 問題描述:圖片在刷新顯示的時候會刷新更改多次,并不是一次到位加載正確圖片。 問題分析:ListView會重用convertView,每一個ImageView并沒有唯一的標識,多個LIstView中Item的加載在緩沖池中產生多個ImageView,在沒有Tag的情況下,重用convertView就會導致新的圖片在加載之前先顯示舊的圖片,根本原因是ListView中特定的Item沒有顯示正確的URL資源 解決方案:方法1-設置Tag:在首次加載時就為ImageView的標簽,標簽為正確的URL(身份驗證信息):viewHolder.imageView.setTag(url),在handler中加載圖片時對標簽進行判斷,若符合,則加載。 方法2-設置成員變量:在showImageByThread中仿照ImageView的方式對URL進行緩存,避免了網絡下載時間不確定導致的持續性的混亂
    查看全部
    0 采集 收起 來源:使用Thread

    2015-11-16

  • 一、如何通過Url獲取網絡反饋的Json字符串結果: 1、重寫doInBackground(Params…) 獲取請求的網址,調用自定義方法getJson(String url); 2、自定義方法getJson中定義URL,獲取inputStream流 3、自定義方法readStream(InputStream is),將inputStream流中的字節流拼裝成字符串; 4、自定義方法getJson調用readeStream()方法,并將InputStream流作為參數傳遞。這樣既可獲得json串結果。
    查看全部
    0 采集 收起 來源:獲取Json數據

    2015-11-16

  • android 異步加載
    查看全部
  • 解決listview加載圖片時卡頓的情況
    查看全部
  • 程序的最后部分在滑動的時候不論本地是否有緩存均顯示默認圖片,這樣在滑動結束后圖片會“閃爍”一下才能顯示真正的圖片,作為一個強迫癥受不了,所以稍微修改了適配器getView部分的代碼,如下: //如果緩存中已經存在該圖片則設置緩存圖片否則設置默認圖片 Bitmap bitmap = imageLoader.getBitmapFromCache(url); if (bitmap != null) { viewHolder.mIcon.setImageBitmap(bitmap); } else { viewHolder.mIcon.setImageResource(R.mipmap.ic_launcher); }
    查看全部
    1 采集 收起 來源:總結

    2015-11-11

  • 獲取網絡數據簡單粗暴的方式
    查看全部
    0 采集 收起 來源:獲取Json數據

    2015-11-08

  • 我的文藝范
    查看全部
  • 我就是一個有情懷的程序員哈哈哈
    查看全部
  • android異步加載
    查看全部

舉報

0/150
提交
取消
課程須知
1、了解異步處理的一般方法 2、掌握如何使用多線程進行異步加載 3、掌握如何使用ASyncTask進行異步加載 4、異步加載的緩存與優化
老師告訴你能學到什么?
本課程是Android中級課程 1、熟練掌握基本的Android應用程序開發方法

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

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

公眾號

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

友情提示:

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