可可工作室出品:
欢迎使用可可直播视频播放器:
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);
- }
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
-
顶