1、获取网站的网络图片的数据:
private String[] imgSites = {
"http://image.baidu.com/",
"http://www.22mm.cc/",
"http://www.moko.cc/",
"http://eladies.sina.com.cn/photo/",
"http://www.youzi4.com/"
};
//获取:
// 加载url请求返回的图片连接给listview
for (String url : imgSites) {
loadImgList(url);
}
///通过网络请求获取网络图片的URL,
并将图片URL加到ArrayList
private void loadImgList(String url) {
new HttpUtils().send(
HttpRequest.HttpMethod.GET,
url,
new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
imageListAdapter.addSrc(getImgSrcList(responseInfo.result));
imageListAdapter.notifyDataSetChanged();//通知listview更新数据
}
@Override
public void onFailure(HttpException error, String msg) {
}
});
}
通过网页的数据,提取出图片资源:
/**
* 得到网页中图片的地址
*/
public static List<String> getImgSrcList(String htmlStr) {
List<String> pics = new ArrayList<String>();
String regEx_img = "<img.*?src=\"http://(.*?).jpg\""; // 图片链接地址
Pattern p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
Matcher m_image = p_image.matcher(htmlStr);
while (m_image.find()) {
String src = m_image.group(1);
if (src.length() < 100) {
pics.add("http://" + src + ".jpg");
}
}
return pics;
}
2、将获取的图片URL加载到listview中的每项imageview中:
(1)、BitmapUtils 的设置:
public static BitmapUtils bitmapUtils;
//bitmapUtils的加载图片的管理器的设置
bitmapUtils = BitmapHelp.getBitmapUtils(this.getActivity().getApplicationContext());
bitmapUtils.configDefaultLoadingImage(R.drawable.ic_launcher);
bitmapUtils.configDefaultLoadFailedImage(R.drawable.bitmap);
bitmapUtils.configDefaultBitmapConfig(Bitmap.Config.RGB_565);
// 设置最大宽高, 不设置时更具控件属性自适应.
bitmapUtils.configDefaultBitmapMaxSize(BitmapCommonUtils.getScreenSize(getActivity()).scaleDown(3));
// 滑动时加载图片,快速滑动时不加载图片
//imageListView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true));
(2)、适配器中数据的加载:
bitmapUtils.display(
holder.imgItem,
imgSrcList.get(position),
//图片加载的回调方法
new CustomBitmapLoadCallBack(holder));
//bitmaputils的回调方法:
public class CustomBitmapLoadCallBack extends DefaultBitmapLoadCallBack<ImageView> {
private final ImageItemHolder holder;
public CustomBitmapLoadCallBack(ImageItemHolder holder) {
this.holder = holder;
}
@Override
public void onLoading(ImageView container, String uri, BitmapDisplayConfig config, long total, long current) {
}
@Override
public void onLoadCompleted(ImageView container, String uri, Bitmap bitmap, BitmapDisplayConfig config, BitmapLoadFrom from) {
//加载数据时的褪色效果
fadeInDisplay(container, bitmap);
}
}
加载数据时的褪色效果的方法:
private static final ColorDrawable TRANSPARENT_DRAWABLE = new ColorDrawable(android.R.color.transparent);
private void fadeInDisplay(ImageView imageView, Bitmap bitmap) {
final TransitionDrawable transitionDrawable =
new TransitionDrawable(new Drawable[]{
//颜色设置
TRANSPARENT_DRAWABLE,
new BitmapDrawable(imageView.getResources(), bitmap)
});
imageView.setImageDrawable(transitionDrawable);
transitionDrawable.startTransition(500);
}