第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Android必學-異步加載

難度中級
時長 1小時57分
學習人數(shù)
綜合評分9.70
220人評價 查看評價
9.9 內(nèi)容實用
9.7 簡潔易懂
9.5 邏輯清晰
  • 解析JSON數(shù)據(jù)到List集合中
    查看全部
  • android異步加載
    查看全部
  • 為什么要實行異步加載
    查看全部
  • 異步加載——圖片加載優(yōu)化 1. 創(chuàng)建一個靜態(tài)String[]將所有要顯示的圖片的地址保存起來 public static String[] URLStrings;//用來保存當前所有需要顯示的圖片的url地址 public NewsAdapter(Context context, List<NewsBean> mListData) { super(); this.mList = mListData; mInflater = LayoutInflater.from(context); mImageLoader = new ImageLoader(); URLStrings = new String[mListData.size()]; for (int i = 0; i<mListData.size(); i++){ URLStrings[i] = mListData.get(i).imageUrl; }} 2. 創(chuàng)建一個方法,加載從start到end的所有圖片 public void loadImages(int start, int end){ for (int i = start; i < end; i++){ //因為URLStrings是靜態(tài)的,所以可以直接使用 String url = NewsAdapter.URLStrings[i]; //從緩存中獲取對應的圖片并判斷 Bitmap bitmap = getBitmapFromCache(url); if(bitmap == null){ NewsAsyncTask task = new NewsAsyncTask(url); task.execute(url); mTasks.add(task); }else { //從緩存中直接獲取數(shù)據(jù)讓iamgeView顯示,這里imageView是從url的tag得來的 ImageView imageView = (ImageView) mListView.findViewWithTag(url); imageView.setImageBitmap(bitmap); }}} 3. 改寫showImageByAsyncTask(),讓顯示圖片的操作交給scroll的監(jiān)聽事件,當bitmap不在緩存時,也不去加載圖片
    查看全部
  • 異步加載——LruCache緩存 1. Lrc——Least Recently Used,LruCache類來實現(xiàn)緩存算法。 LruCache類將內(nèi)容保存在內(nèi)存中,并以一定的方法管理這些內(nèi)容,來實現(xiàn)緩存管理。 2. LrcCache本質(zhì)是一個Map,底層是通過HashMap實現(xiàn)的。 所以在使用LruCache時可以通過調(diào)用set()和get()方法使用。 3. 使用步驟: (1)先創(chuàng)建一個LruCache,并在構(gòu)造函數(shù)中初始化它。 注意:通過匿名內(nèi)部類的方式實現(xiàn)sizeOf()方法,sizeOf()方法用來獲取每次緩存的對象的大小,默認返回元素的個數(shù)。sizeOf()方法在每次元素加入緩存時調(diào)用。 private LruCache<String, Bitmap> mLruCache; public ImageLoader() { //通過Runtime類獲取運行時最大內(nèi)存 int maxMemory = (int) Runtime.getRuntime().maxMemory(); int cacheSize = maxMemory/4; mLruCache = new LruCache<String, Bitmap>(cacheSize){ protected int sizeOf(String key, Bitmap value) { return value.getByteCount(); }};} (2)兩個set()和get()方法,分別是加入元素到緩存以及從緩存中獲取數(shù)據(jù) public void addBitmapToCache(String url, Bitmap bitmap){ if(getBitmapFromCache(url)==null){ mLruCache.put(url, bitmap); } } public Bitmap getBitmapFromCache(String url){ return mLruCache.get(url); } (3)改寫showImageByAsyncTask()和doInBackground() (如圖)bitmap不在緩存中時才下載;下載完之后保存在cache中。 (4)最后要在創(chuàng)建Adapter對象時給ImageLoader的對象初始化,直接使用該對象。這樣不會每次都創(chuàng)建LruCache
    查看全部
    0 采集 收起 來源:LruCache緩存(下)

    2018-03-22

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

    2016-03-14

  • 異步加載——實現(xiàn)ListView圖文混排邏輯總結(jié) 第一步 onCreate中new一個NewsAsyncTask 將url傳遞給getJsonData 實現(xiàn)異步訪問 第二步 getJsonData將url轉(zhuǎn)換為NewsBean對象 第三步 onPostExecute講NewsBean的數(shù)據(jù)傳遞給NewsAdapter 第四步 NewsAdapter構(gòu)造一個ListView數(shù)據(jù)源 并將數(shù)據(jù)源設置給ListView
    查看全部
    0 采集 收起 來源:邏輯梳理

    2016-03-14

  • 文藝方式重現(xiàn)BaseAdpter 1、自定義Adpter繼承BaseAdpter; 2、定義變量:List<NewsBean>;LayoutInflater; 3、重寫構(gòu)造函數(shù)NewsAdpter(Context context, List<NewsBean> data)。 4、文藝方式重寫getView()方法。 4.1、自定義類ViewHolder,映射相關的view對象
    查看全部
  • 異步加載 1. 主線程中不能做耗時操作,只能更新UI 下面的例子 2. 獲取jsonData url = http://idcbgp.cn/api/teacher?type=4&num=30 下面的openStream參數(shù)是從URL參數(shù)中new URL(url).openStream()獲取的。 private String readStream(InputStream openStream) { InputStreamReader isr; String result = ""; try { String line = ""; //將InputStream類的字節(jié)流轉(zhuǎn)換成字符流 isr = new InputStreamReader(openStream, "utf-8"); //轉(zhuǎn)存在BufferedReader中 BufferedReader br = new BufferedReader(isr); while((line = br.readLine())!=null) { result+=line; } } return result; } 3. 解析json數(shù)據(jù)到List<NewsBean>中 (如圖),通過如下for循環(huán)就可以將jsonString原始字符數(shù)據(jù)導入到每個NewsBean對象中。 for (int i = 0; i<jsonArray.length(); i++) { jsonObject = jsonArray.getJSONObject(i); newsBean = new NewsBean(); //從jsonObject中得到每個元素數(shù)據(jù)給newsBean newsBean.image = jsonObject.getString("picSmall"); newsBean.title = jsonObject.getString("name"); newsBean.content = jsonObject.getString("description"); newsBeanList.add(newsBean); } 最后通過newsBeanList.add(newsBean)組成一個List<NewsBean>對象,這是構(gòu)成Adapter適配器的原始數(shù)據(jù)
    查看全部
  • 利用異步加載來實現(xiàn)json格式的獲?。?首先定義異步加載類來獲取json數(shù)據(jù) jsonString數(shù)據(jù)的獲取需要用到InputStream 構(gòu)造ReadStream(InputStream is )得到String 數(shù)據(jù) 傳給jsonString : 1、InputStremReader 讀取 InputStream 2、轉(zhuǎn)為BufferedStream 便于修改 3、逐行讀取數(shù)據(jù)line = br.readline() 只要 line !=null -->result +=line 4、return result 獲取到的json數(shù)據(jù)封裝成Bean格式之后再傳給Adapter(下一節(jié))
    查看全部
  • 使用異步加載的原因: 1.android單線程模型 2.耗時操作阻塞UI線程 異步加載最常用的兩種方式: 1.多線程\線程池 2.AsyncTask
    查看全部
  • Android異步加載
    查看全部
  • Android異步加載
    查看全部
    0 采集 收起 來源:總結(jié)

    2016-03-10

  • 1.安卓的單線程模式?jīng)Q定非主線程是不能夠在線程中直接去編程UI的,只能通過Handler去傳遞消息機制
    查看全部
    0 采集 收起 來源:使用Thread

    2016-03-03

  • Android異步加載
    查看全部
    0 采集 收起 來源:總結(jié)

    2016-03-02

舉報

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

微信掃碼,參與3人拼團

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

友情提示:

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