2013-04-05 84 views
2

我正在使用Android-Universal-Image-Loader庫來加載我的圖像並進行緩存等。我試圖使用JH Labs庫對其應用框模糊濾鏡。我嘗試在onLoadingComplete事件中應用過濾器,但它看起來不像可變的位圖。有沒有人有過對由Android ImageLoader加載的位圖應用過濾器的經驗?如何將過濾器應用於Android ImageLoader加載的圖像?

+0

您應該添加代碼,試圖告訴你嘗試過什麼。 – 2013-04-05 01:38:46

+0

嗨布萊恩,你有沒有在這方面做過什麼?我正在處理類似的問題。謝謝 – Egis 2013-05-02 21:23:13

回答

3

我終於得到了這個工作。這是在onLoadingComplete事件中應用過濾器的正確方法。然而,由於位圖有inmutable,關鍵是在ImageView的傳遞並再次調用setImageBitmap方法來過濾的位圖設置爲ImageView的:

public void displayImageBlurred(String imageUri, final ImageView imageView) { 
    this.displayImage(imageUri, imageView, true, 0, new SimpleImageLoadingListener() { 

     @Override 
     public void onLoadingComplete(Bitmap loadedImage) { 
      int width = loadedImage.getWidth(); 
      int height = loadedImage.getHeight(); 

      BoxBlurFilter filter = new BoxBlurFilter(); 
      filter.setRadius(8.5f); 

      int[] src = AndroidUtils.bitmapToIntArray(loadedImage); 
      src = filter.filter(src, width, height); 

      loadedImage = Bitmap.createBitmap(src, width, height, Config.ARGB_8888); 
      imageView.setImageBitmap(loadedImage); 
     } 
    }); 
} 

public void displayImage(String imageUri, final ImageView imageView, boolean callBackIfCached, long startTime, ImageLoadingListener listener) { 
    ImageLoader imageLoader = ImageLoader.getInstance(); 
    imageLoader.displayImage(imageUri, imageView, defaultOptions, listener); 
} 
+0

這可以幫助我很多,謝謝! – 2014-07-29 03:08:10

相關問題