可可工作室出品:
欢迎使用可可直播视频播放器:
http://pan.baidu.com/share/link?shareid=3291150676&uk=4111208708
我们在开发直播的时候,要显示电视台的图标,而OOM也是经常遇到的,为了解决这个问题,我使用了网上一个开源的网络图片加载工具Android-Universal-Image-Loader,它的官网https://github.com/nostra13/Android-Universal-Image-Loader 能够帮助我们解决这个问题,而且种类多样性,代码里面不仅给出的源码而且给出来demo实例,我们先可以看看它官方实例的图片:
当然布局我们可以自己定义,下面介绍一下使用时候需要注意的地方:
1、首先要在application中的onCreate添加
public static void initImageLoader(Context context) { // This configuration tuning is custom. You can tune every option, you may tune some of them, // or you can create default configuration by // ImageLoaderConfiguration.createDefault(this); // method. ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) .threadPriority(Thread.NORM_PRIORITY - 2) .denyCacheImageMultipleSizesInMemory() .discCacheFileNameGenerator(new Md5FileNameGenerator()) .tasksProcessingOrder(QueueProcessingType.LIFO) .writeDebugLogs() // Remove for release app .build(); // Initialize ImageLoader with configuration. ImageLoader.getInstance().init(config); }否则你使用ImageLoader的时候会提示你先要init才能使用
2、直播一般是获取服务器数据,所以我们还需要解析服务器返回的数据(可能是json,xml),把解析完后的数据我们可以放在List里面,然后在Adapter中的getView中调用
imageLoader.displayImage(imageUrls[position], holder.image, options, animateFirstListener);
其中的animateFirstListener为:
private static class AnimateFirstDisplayListener extends SimpleImageLoadingListener { static final List<String> displayedImages = Collections.synchronizedList(new LinkedList<String>()); @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { if (loadedImage != null) { ImageView imageView = (ImageView) view; boolean firstDisplay = !displayedImages.contains(imageUri); if (firstDisplay) { FadeInBitmapDisplayer.animate(imageView, 500); displayedImages.add(imageUri); } } } }
这样就完成了,非常方便。
欢迎使用可可直播视频播放器:
http://pan.baidu.com/share/link?shareid=3291150676&uk=4111208708
作者:jwzhangjie 发表于2013-8-19 12:57:41 原文链接
阅读:52 评论:0 查看评论