Android-Universal-Image-Loaderライブラリを使用して画像をロードし、キャッシュなどを行います。JH Labs ライブラリを使用して、ボックスぼかしフィルターを適用しようとしています。onLoadingComplete イベントでフィルターに適用しようとしましたが、変更可能なビットマップのようには見えません。Android ImageLoader によって読み込まれたビットマップにフィルターを適用した経験のある人はいますか?
1442 次
1 に答える
3
私はついにこれを機能させました。onLoadingComplete イベントでフィルターを適用するのは正しいアプローチでした。ただし、ビットマップは不変であるため、重要なのは 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);
}
于 2013-05-03T22:52:20.340 に答える