-
卡頓現(xiàn)象的解決方法:用內(nèi)存換時(shí)間查看全部
-
直接把輸入流轉(zhuǎn)換成BITMAP查看全部
-
Asynctast的第三個(gè)參數(shù)就是這個(gè)任務(wù)最后返回值查看全部
-
json數(shù)據(jù)查看全部
-
connection查看全部
-
asynctask查看全部
-
記住學(xué)習(xí)BufferReader查看全部
-
url轉(zhuǎn)bitmap 圖片緩沖查看全部
-
各位我想請(qǐng)教一下,在現(xiàn)在的Android異步請(qǐng)求asyncTask是不是已經(jīng)過時(shí)?現(xiàn)在有沒有什么更好的Android的異步請(qǐng)求的框架或者別的什么新的異步請(qǐng)求的工具查看全部
-
Lru算法查看全部
-
@Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // 滾動(dòng)時(shí)一直回調(diào),直到停止?jié)L動(dòng)時(shí)才停止回調(diào)。單擊時(shí)回調(diào)一次。 // firstVisibleItem:當(dāng)前能看見的第一個(gè)列表項(xiàng)ID(從0開始) // visibleItemCount:當(dāng)前能看見的列表項(xiàng)個(gè)數(shù)(小半個(gè)也算) // totalItemCount:列表項(xiàng)共數(shù) mStart = firstVisibleItem; mEnd = firstVisibleItem + visibleItemCount; } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // 正在滾動(dòng)時(shí)回調(diào),回調(diào)2-3次,手指沒拋則回調(diào)2次。scrollState = 2的這次不回調(diào) // 回調(diào)順序如下 // 第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1) 正在滾動(dòng) // 第2次:scrollState = SCROLL_STATE_FLING(2) 手指做了拋的動(dòng)作(手指離開屏幕前,用力滑了一下) // 第3次:scrollState = SCROLL_STATE_IDLE(0) 停止?jié)L動(dòng) // 當(dāng)屏幕停止?jié)L動(dòng)時(shí)為0;當(dāng)屏幕滾動(dòng)且用戶使用的觸碰或手指還在屏幕上時(shí)為1; // 由于用戶的操作,屏幕產(chǎn)生慣性滑動(dòng)時(shí)為2 // 當(dāng)滾到最后一行且停止?jié)L動(dòng)時(shí),執(zhí)行加載 if (scrollState == SCROLL_STATE_IDLE) { // 加載可見項(xiàng) } // 停止任務(wù) }查看全部
-
異步加載的總結(jié)查看全部
-
ListView的進(jìn)一步優(yōu)化1查看全部
-
1. 對(duì)于從網(wǎng)絡(luò)上獲取圖片這種需求,我們都要使用Cache來將我們的圖片緩存起來,尤其是對(duì)于ListVIew這種,不能每次我們滑動(dòng)ListView就重新從網(wǎng)上下載圖片,這樣會(huì)很浪費(fèi)資源而且浪費(fèi)手機(jī)的流量。在Android中,已經(jīng)為我們提供了一個(gè)用于緩存的類LruCache。我們可以使用這個(gè)類來實(shí)現(xiàn)我們對(duì)于圖片資源的緩存。 2. LruCache是將圖片緩存在內(nèi)存中,而還有個(gè)第三方的類DiskLruCache來將圖片緩存到手機(jī)的Disk上,而我們大型的app,一般都是將LruCache和DiskLruCache結(jié)合起來使用,形成一個(gè)memory hierarchy。查看全部
-
1、使用多線程方法實(shí)現(xiàn)圖片的異步加載的壞處: 當(dāng)網(wǎng)絡(luò)環(huán)境不是很好情況下,ListView本身的緩沖機(jī)制可能會(huì)造成ListView的item顯示錯(cuò)亂。 2、兩種方法可以避免這種問題: (1)將當(dāng)前的item與原始數(shù)據(jù)綁定 例如在Adapter的getView()方法中為每個(gè)ImageView設(shè)置一個(gè)url的tag String urlString = newsBean.imageUrl; viewHolder.imageView.setTag(urlString); 在主線程的Handler中真正加載進(jìn)行更新UI時(shí),會(huì)判斷這個(gè)tag是否是對(duì)應(yīng)的。只有當(dāng)tag是正確時(shí)才會(huì)真正做設(shè)置item的操作 if(mImageView.getTag().equals(urlString)) mImageView.setImageBitmap((Bitmap) msg.obj); (2)使用成員變量將對(duì)應(yīng)的數(shù)據(jù)進(jìn)行緩存,這種方式就相當(dāng)于BaseAdapter中使用ViewHolder是一樣的。查看全部
舉報(bào)
0/150
提交
取消