使用Volley框架异步加载图片+ListView图片加载错位解决
来源:互联网 发布:c语言scoket书籍 编辑:程序博客网 时间:2024/06/04 19:44
BitmapCache类:
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.
}
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:
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.
}
0 0
- 使用Volley框架异步加载图片+ListView图片加载错位解决
- 使用Volley框架异步加载图片+ListView图片加载错位解决
- 使用Volley的imageRequest加载图片实例(含listview异步加载图片错位问题)
- 解决图片异步加载错位
- 使用Volley实现ListView异步加载图片
- android开发中解决ListView异步加载图片错位问题
- 解决Android ListView中图片异步加载错位问题
- -------------解决Android ListView中图片异步加载错位问题
- listview异步加载图片并防止错位
- Android ListView异步加载图片错位问题
- Android ListView异步加载图片错位解决方案一 使用findViewWithTag
- 使用Volley框架加载图片
- Android ListView图片异步加载时,图片错位的问题
- ListView异步加载图片--图片缓存和错位问题解决方案
- ListView异步加载图片--图片缓存和错位问题解决方案
- ListView异步加载图片出现图片错位的解决方案
- android listview 异步加载图片时出现图片错位、刷新问题的简单解决
- listView异步加载图片导致图片错位、闪烁、重复的问题的解决
- 系统上线流程规范
- REST架构风格简介
- RCNN学习笔记(7):Faster R-CNN 英文论文翻译笔记
- excel的导入导出
- SpringMVC设置一个自定义拦截器
- 使用Volley框架异步加载图片+ListView图片加载错位解决
- 全局区 代码区 堆区 栈区
- RCNN学习笔记(8):Fully Convolutional Networks for Semantic Segmentation(全卷积网络FCN)
- Caching Bitmaps
- 单片机多机通讯 一对多
- 各种排序算法的实现及其比较(c++实现)
- Maximal Rectangle
- smb.conf
- [从头读历史] 第300节 时间简史 结语:地球的年轮