編輯:關於Android編程
今天在我哥們的帶領下,學習了一些關於ListView的優化方案。現在提出來和大家分享下....
第一點:
在Listview中數據加載時經常用到的ViewHolder,我們需要把它寫成靜態類static,這樣的話數據是共享的在本地緩存中,取出的數據是很快的。
第二點:
如果Listview需要加載圖片的話,我們一般是開子線程去加載數據的,然後再主線程中更新。這樣的話為了良好的用戶體驗,我們經常會設置一張默認圖片,如果數據還在加載,我們就先顯示默認圖片,然後在慢慢加載圖片。
holder.img.setImageDrawable(defDrawable); holder.img.setBackgroundResource(R.raw.back);上面的兩種方法都是設置默認圖片的,只是效率上有很大的差距。
holder.img.setImageDrawable(defDrawable) 的工作流程是將一張Drawable添加進去,然後有Android繪畫機制畫出這張圖片。要這樣做的話,我們需要在listView的適配器的構造方法中先把這張圖片獲取到。
Resources res = mContext.getResources(); Bitmap bitmap = BitmapFactory.decodeResource(res, R.raw.back); defDrawable = new BitmapDrawable(res, bitmap);我們先在raw文件下找到這張圖片,把它加載到內存中,然後把它轉化為bitmap對象,再將它轉化為drawable對象,這樣的話Android的原始繪畫機制可以很快的畫出這張圖片。並且我們在加載圖片的從頭到尾中,只會產生一個對象,不會浪費內存。
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+tdrI/bXjo7q/tLz7yc/D5rXEzbzGrMHLwvCjv7Xatv7VxcO709C809TYtcSho8THysfO0srW1rjV/bC01NpMaXN0dmlld8nPo6zWu9PQztLLyb+qytajrMv8ssW74bzT1NjNvMasoaOyosfSyOe5+87Sv+zL2bXEu6y2r0xpc3R2aWV3o6zL/Na7u+G809TYztLK1ta41+6688Drv6q1xMTH0rvSs7XEyv2+3dDFz6KjrMeww+a7rLn90rPD5rXE0MXPosrHsru74bzT1Ni1xKGjQW5kcm9pZM+1zbPX1LT4tcTUtMn6TGlzdHZpZXejrMjnufvO0sPHv+zL2bustq+1xLuwo6zDv7TO1Nq3rdKztcTKsbryo6zI57n7xOPPuNDEtcS7sKOsu+G40L71tb3T0L+ottm1xNCnufujrLvhutzE0crctcSho8v50tTO0s/ytPO80s3GvPZnaXRodWLJz9K7uPa088nx0LS1xExpc3R2aWV3tcS/qtS0v/K83EZhc3RTY3JvbGxWaWV3o6zQp7n7utzHv7TztcSjrNPQ0OjSqrXExfPT0b/J0tTIpcrUytS1xKGjPC9wPgo8cD7Qoby8x8mjus7Sw8e/ydLUz8jUpLzT1NjSu9KztcTNvMaso6zS1LrztcTPyNPDxKzIz828xqy0+szmo6zV4tH5tcTQp7n7u+G63LrDtcQuLi48L3A+CjxwPjxwcmUgY2xhc3M9"brush:java;">//先加載第一頁圖片
if(!TextUtils.isEmpty(item.picUrl)){
if(position<4){
loadIMG(holder.img, item);
}
}
語法: . . .被包含在: 可以包含:描述:聲明實現了應用程序可視化用戶界面一部分的一個activity(activity子類),在清單文件中的必
如何使用在Eclipse中已經有AJDT插件集成了AspectJ編譯器的使用和關鍵字的聲明。但是在Android Studio中沒有這樣的官方插件。因此,這裡講一下如何在
轉載 原文鏈接:Introducing Fresco: A new image library for Android 作者 : tyrone Nichol
本篇文章主要介紹了android基礎總結篇之三:Activity的task相關,具有一定的參考價值,有需要的可以了解一下。今天我們來講一下Activity的task相關內