您的位置:首页 > 其它

使用Volley框架异步加载图片+ListView图片加载错位解决

2016-07-11 17:55 417 查看
BitmapCache类:

view
sourceprint?

01.
package
com.dystudio.ustc.asyncimageloader_listview_volley;


02.


03.
import
android.graphics.Bitmap;


04.
import
android.support.v4.util.LruCache;


05.
import
android.util.Log;


06.


07.
import
com.android.volley.toolbox.ImageLoader.ImageCache;


08.


09.


10.
public
class
BitmapCache
implements
ImageCache
{


11.


12.
private
static
final
String
TAG =
"BitmapCache"
;


13.
private
LruCache<String,
Bitmap> mCache;


14.


15.
public
BitmapCache()
{


16.


17.
int
maxSize
=
4
*
1024
*
1024
;


18.


19.
mCache
=
new
LruCache<String,
Bitmap>(maxSize) {


20.
@Override


21.
protected
int
sizeOf(String
key, Bitmap bitmap) {


22.


23.
return
bitmap.getRowBytes()
*bitmap.getHeight();


24.
}


25.


26.
};


27.


28.
}


29.


30.
@Override


31.
public
Bitmap
getBitmap(String url) {


32.


33.
Log.i(TAG,
"get
cache "
+
url);


34.


35.
return
mCache.get(url);


36.
}


37.


38.
@Override


39.
public
void
putBitmap(String
url, Bitmap bitmap) {


40.
Log.i(TAG,
"get
cache: "
+
url);


41.
if
(bitmap
!=
null
)
{


42.


43.
mCache.put(url,
bitmap);


44.


45.
}


46.


47.
}


48.


49.
}


MyAdapter:

view
sourceprint?

01.
package
com.dystudio.ustc.asyncimageloader_listview_volley;


02.


03.
import
android.content.Context;


04.
import
android.view.LayoutInflater;


05.
import
android.view.View;


06.
import
android.view.ViewGroup;


07.
import
android.widget.BaseAdapter;


08.


09.
import
com.android.volley.RequestQueue;


10.
import
com.android.volley.toolbox.ImageLoader;


11.
import
com.android.volley.toolbox.NetworkImageView;


12.
import
com.android.volley.toolbox.Volley;


13.


14.


15.


16.
public
class
MyAdapter
extends
BaseAdapter
{


17.


18.
private
String[]
list;


19.


20.
private
Context
context;


21.


22.
private
RequestQueue
queue;


23.


24.
private
ImageLoader
imageLoader;


25.


26.
public
MyAdapter(Context
context, String[] list) {


27.


28.
this
.context
= context;


29.


30.
this
.list
= list;


31.


32.
queue
= Volley.newRequestQueue(context);


33.


34.
imageLoader
=
new
ImageLoader(queue,
new
BitmapCache());


35.
}


36.


37.
@Override


38.
public
int
getCount()
{


39.
return
list.length;


40.
}


41.


42.
@Override


43.
public
Object
getItem(
int
position)
{


44.
return
list[position];


45.
}


46.


47.
@Override


48.
public
long
getItemId(
int
position)
{


49.
return
position;


50.
}


51.


52.
@Override


53.
public
View
getView(
int
position,
View convertView, ViewGroup parent) {


54.


55.
ViewHolder
holder =
null
;


56.


57.
if
(convertView
==
null
)
{


58.


59.
holder
=
new
ViewHolder();


60.


61.
convertView
= LayoutInflater.from(context).inflate(


62.
R.layout.list_item,
null
);


63.
holder.img
= (NetworkImageView) convertView


64.
.findViewById(R.id.userimage);


65.


66.
convertView.setTag(holder);


67.


68.
}
else
{


69.


70.
holder
=(ViewHolder) convertView.getTag();


71.


72.
}


73.
String
imgUrl = list[position];


74.


75.
if
(imgUrl
!=
null
&&
!imgUrl.equals(
""
))
{


76.


77.
holder.img.setDefaultImageResId(R.drawable.ic_launcher);


78.
holder.img.setErrorImageResId(R.drawable.ic_launcher);


79.
holder.img.setImageUrl(imgUrl,
imageLoader);


80.


81.
}


82.


83.
return
convertView;


84.
}


85.


86.
static
class
ViewHolder
{


87.
NetworkImageView
img;


88.
}


89.


90.
}


MainActivity:

view
sourceprint?

001.
package
com.dystudio.ustc.asyncimageloader_listview_volley;


002.


003.
import
android.app.Activity;


004.
import
android.os.Bundle;


005.
import
android.widget.ListView;


006.


007.
public
class
MainActivity
extends
Activity
{


008.
ListView
listView;


009.
String[]
images =
new
String[]
{


010.
"http://img.my.csdn.net/uploads/201407/26/1406383299_1976.jpg"
,


011.
"http://img.my.csdn.net/uploads/201407/26/1406383291_6518.jpg"
,


012.
"http://img.my.csdn.net/uploads/201407/26/1406383291_8239.jpg"
,


013.
"http://img.my.csdn.net/uploads/201407/26/1406383290_9329.jpg"
,


014.
"http://img.my.csdn.net/uploads/201407/26/1406383290_1042.jpg"
,


015.
"http://img.my.csdn.net/uploads/201407/26/1406383275_3977.jpg"
,


016.
"http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg"
,


017.
"http://img.my.csdn.net/uploads/201407/26/1406383264_3954.jpg"
,


018.
"http://img.my.csdn.net/uploads/201407/26/1406383264_4787.jpg"
,


019.
"http://img.my.csdn.net/uploads/201407/26/1406383264_8243.jpg"
,


020.
"http://img.my.csdn.net/uploads/201407/26/1406383248_3693.jpg"
,


021.
"http://img.my.csdn.net/uploads/201407/26/1406383243_5120.jpg"
,


022.
"http://img.my.csdn.net/uploads/201407/26/1406383242_3127.jpg"
,


023.
"http://img.my.csdn.net/uploads/201407/26/1406383242_9576.jpg"
,


024.
"http://img.my.csdn.net/uploads/201407/26/1406383242_1721.jpg"
,


025.
"http://img.my.csdn.net/uploads/201407/26/1406383219_5806.jpg"
,


026.
"http://img.my.csdn.net/uploads/201407/26/1406383214_7794.jpg"
,


027.
"http://img.my.csdn.net/uploads/201407/26/1406383213_4418.jpg"
,


028.
"http://img.my.csdn.net/uploads/201407/26/1406383213_3557.jpg"
,


029.
"http://img.my.csdn.net/uploads/201407/26/1406383210_8779.jpg"
,


030.
"http://img.my.csdn.net/uploads/201407/26/1406383172_4577.jpg"
,


031.
"http://img.my.csdn.net/uploads/201407/26/1406383166_3407.jpg"
,


032.
"http://img.my.csdn.net/uploads/201407/26/1406383166_2224.jpg"
,


033.
"http://img.my.csdn.net/uploads/201407/26/1406383166_7301.jpg"
,


034.
"http://img.my.csdn.net/uploads/201407/26/1406383165_7197.jpg"
,


035.
"http://img.my.csdn.net/uploads/201407/26/1406383150_8410.jpg"
,


036.
"http://img.my.csdn.net/uploads/201407/26/1406383131_3736.jpg"
,


037.
"http://img.my.csdn.net/uploads/201407/26/1406383130_5094.jpg"
,


038.
"http://img.my.csdn.net/uploads/201407/26/1406383130_7393.jpg"
,


039.
"http://img.my.csdn.net/uploads/201407/26/1406383129_8813.jpg"
,


040.
"http://img.my.csdn.net/uploads/201407/26/1406383100_3554.jpg"
,


041.
"http://img.my.csdn.net/uploads/201407/26/1406383093_7894.jpg"
,


042.
"http://img.my.csdn.net/uploads/201407/26/1406383092_2432.jpg"
,


043.
"http://img.my.csdn.net/uploads/201407/26/1406383092_3071.jpg"
,


044.
"http://img.my.csdn.net/uploads/201407/26/1406383091_3119.jpg"
,


045.
"http://img.my.csdn.net/uploads/201407/26/1406383059_6589.jpg"
,


046.
"http://img.my.csdn.net/uploads/201407/26/1406383059_8814.jpg"
,


047.
"http://img.my.csdn.net/uploads/201407/26/1406383059_2237.jpg"
,


048.
"http://img.my.csdn.net/uploads/201407/26/1406383058_4330.jpg"
,


049.
"http://img.my.csdn.net/uploads/201407/26/1406383038_3602.jpg"
,


050.
"http://img.my.csdn.net/uploads/201407/26/1406382942_3079.jpg"
,


051.
"http://img.my.csdn.net/uploads/201407/26/1406382942_8125.jpg"
,


052.
"http://img.my.csdn.net/uploads/201407/26/1406382942_4881.jpg"
,


053.
"http://img.my.csdn.net/uploads/201407/26/1406382941_4559.jpg"
,


054.
"http://img.my.csdn.net/uploads/201407/26/1406382941_3845.jpg"
,


055.
"http://img.my.csdn.net/uploads/201407/26/1406382924_8955.jpg"
,


056.
"http://img.my.csdn.net/uploads/201407/26/1406382923_2141.jpg"
,


057.
"http://img.my.csdn.net/uploads/201407/26/1406382923_8437.jpg"
,


058.
"http://img.my.csdn.net/uploads/201407/26/1406382922_6166.jpg"
,


059.
"http://img.my.csdn.net/uploads/201407/26/1406382922_4843.jpg"
,


060.
"http://img.my.csdn.net/uploads/201407/26/1406382905_5804.jpg"
,


061.
"http://img.my.csdn.net/uploads/201407/26/1406382904_3362.jpg"
,


062.
"http://img.my.csdn.net/uploads/201407/26/1406382904_2312.jpg"
,


063.
"http://img.my.csdn.net/uploads/201407/26/1406382904_4960.jpg"
,


064.
"http://img.my.csdn.net/uploads/201407/26/1406382900_2418.jpg"
,


065.
"http://img.my.csdn.net/uploads/201407/26/1406382881_4490.jpg"
,


066.
"http://img.my.csdn.net/uploads/201407/26/1406382881_5935.jpg"
,


067.
"http://img.my.csdn.net/uploads/201407/26/1406382880_3865.jpg"
,


068.
"http://img.my.csdn.net/uploads/201407/26/1406382880_4662.jpg"
,


069.
"http://img.my.csdn.net/uploads/201407/26/1406382879_2553.jpg"
,


070.
"http://img.my.csdn.net/uploads/201407/26/1406382862_5375.jpg"
,


071.
"http://img.my.csdn.net/uploads/201407/26/1406382862_1748.jpg"
,


072.
"http://img.my.csdn.net/uploads/201407/26/1406382861_7618.jpg"
,


073.
"http://img.my.csdn.net/uploads/201407/26/1406382861_8606.jpg"
,


074.
"http://img.my.csdn.net/uploads/201407/26/1406382861_8949.jpg"
,


075.
"http://img.my.csdn.net/uploads/201407/26/1406382841_9821.jpg"
,


076.
"http://img.my.csdn.net/uploads/201407/26/1406382840_6603.jpg"
,


077.
"http://img.my.csdn.net/uploads/201407/26/1406382840_2405.jpg"
,


078.
"http://img.my.csdn.net/uploads/201407/26/1406382840_6354.jpg"
,


079.
"http://img.my.csdn.net/uploads/201407/26/1406382839_5779.jpg"
,


080.
"http://img.my.csdn.net/uploads/201407/26/1406382810_7578.jpg"
,


081.
"http://img.my.csdn.net/uploads/201407/26/1406382810_2436.jpg"
,


082.
"http://img.my.csdn.net/uploads/201407/26/1406382809_3883.jpg"
,


083.
"http://img.my.csdn.net/uploads/201407/26/1406382809_6269.jpg"
,


084.
"http://img.my.csdn.net/uploads/201407/26/1406382808_4179.jpg"
,


085.
"http://img.my.csdn.net/uploads/201407/26/1406382790_8326.jpg"
,


086.
"http://img.my.csdn.net/uploads/201407/26/1406382789_7174.jpg"
,


087.
"http://img.my.csdn.net/uploads/201407/26/1406382789_5170.jpg"
,


088.
"http://img.my.csdn.net/uploads/201407/26/1406382789_4118.jpg"
,


089.
"http://img.my.csdn.net/uploads/201407/26/1406382788_9532.jpg"
,


090.
"http://img.my.csdn.net/uploads/201407/26/1406382767_3184.jpg"
,


091.
"http://img.my.csdn.net/uploads/201407/26/1406382767_4772.jpg"
,


092.
"http://img.my.csdn.net/uploads/201407/26/1406382766_4924.jpg"
,


093.
"http://img.my.csdn.net/uploads/201407/26/1406382766_5762.jpg"
,


094.
"http://img.my.csdn.net/uploads/201407/26/1406382765_7341.jpg"
};


095.


096.
@Override


097.
protected
void
onCreate(Bundle
savedInstanceState) {


098.
super
.onCreate(savedInstanceState);


099.
setContentView(R.layout.activity_main);


100.
listView
= (ListView) findViewById(R.id.listview);


101.
MyAdapter
adapter =
new
MyAdapter(
this
,
images);


102.
listView.setAdapter(adapter);


103.
}


104.
}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: