您的位置:首页 > 其它

xutils的bitmap的深度使用

2015-11-03 16:09 302 查看
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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: