Fresco高斯模糊使用

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庫的導入自行導入一下即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章