Fresco高斯模糊使用
/**
* -----------------------------------------------------------------
* Copyright (C) 2014-2019, by com.trident, All rights reserved.
* -----------------------------------------------------------------
* <p>
* Author: aaron
* <p>
* Create: 2019/8/1 5:37 PM
* <p>
* Description:
* 1. 頭像遮罩時會使用
* 2. 直播背景
*/
public class FrescoUtil {
/**
* 以高斯模糊顯示。
*
* @param draweeView View。
* @param url url.
* @param iterations 迭代次數,越大越魔化。
* @param blurRadius 模糊圖半徑,必須大於0,越大越模糊。
*/
public static void showUrlBlur(SimpleDraweeView draweeView, String url, int iterations, int blurRadius) {
try {
Uri uri = Uri.parse(url);
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setPostprocessor(new IterativeBoxBlurPostProcessor(iterations, blurRadius))
.build();
AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
.setOldController(draweeView.getController())
.setImageRequest(request)
.build();
draweeView.setController(controller);
} catch (Exception e) {
e.printStackTrace();
}
}
}
調用示例
public class BlurAct extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化Fresco
Fresco.initialize(BlurAct.this);
setContentView(R.layout.blur_act);
SimpleDraweeView view = findViewById(R.id.pull_cover_iv);
String url = "https:.......jpg";
FrescoUtil.showUrlBlur(view, url, 2, 24);
}
}
blur_act.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/pull_cover_iv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/loading_bg"
android:scaleType="centerCrop" />
</RelativeLayout>
Fresco庫的導入自行導入一下即可