可可工作室出品:
歡迎使用可可直播視頻播放器:
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>());@Overridepublic 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