网络加载图片,Fresco、ImageLoader、Picasso的使用

1.Fresco 的使用

加入依赖

//fresco 图片依赖 记得配置App初始化

 implementation 'com.facebook.fresco:fresco:1.11.0'

//fresco GIF依赖 记得配置App初始化

  implementation 'com.facebook.fresco:animated-gif:1.11.0'

配置App全局设置

public class App extends Application {
@Override
public void onCreate() {
    super.onCreate();
 ===============无缓存========
//        //调用Fresco类 里的初始化方法 传上下文this  然后在清单文件添加
//        Fresco.initialize(this);
 ===============有缓存========
    // 高级初始化   
    Fresco.initialize(this, ImagePipelineConfig.newBuilder(App.this)
            .setMainDiskCacheConfig(
                    DiskCacheConfig.newBuilder(this)
                            .setBaseDirectoryPath(new File("SD卡路径")) // 注意Android运行时权限。
                            .build()
            )
            .build()
    );


}
}

配置清单文件

<application
    android:name=".App"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

** 在布局中加入控件**

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/simple_view"
    android:layout_width="100dp"
    android:layout_height="100dp"
    fresco:roundAsCircle="true"
    />

开始使用

//找到控件
simple =(SimpleDraweeView) findViewById(R.id.simple_view);

//1、直接加载
Uri uri = Uri.parse("图片链接");
//          simple.setImageURI(uri);
加载本地资源需要 加载本地路径
  例: String urlgif1="res:///"+R.drawable.tt1;
  
// 2、加载gif
    AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
            //图片地址
            .setUri(urlgif1)
            //播放gif 图片
            .setAutoPlayAnimations(true)
            //点击重新加载时 可以重新加载4 次
            .setTapToRetryEnabled(true)
            .build();
    simple.setController(controller);

高斯模糊

	//  高斯模糊的方法
 	 showUrlBlur(simple,url,100,10);
 	  /**
 * 以高斯模糊显示。
 * @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();
    }
}

ImageLoader的适用

加入依赖

implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

布局里加控件

<ImageView
     android:layout_width="150dp"
     android:layout_height="wrap_content"
     android:id="@+id/image1"
     android:src="@mipmap/ic_launcher"
     />

配置App

扫描二维码关注公众号,回复: 5018516 查看本文章
public class App extends Application {
@Override
public void onCreate() {
    super.onCreate();
    ImageLoaderConfiguration aDefault = ImageLoaderConfiguration.createDefault(this);
    ImageLoader.getInstance().init(aDefault);
}
}

找到控件并赋值

 ImageLoader.getInstance().displayImage(url,view);

Picasso

加入依赖

implementation 'com.squareup.picasso:picasso:2.3.2'

找到控件直接赋值

			Picasso.with(context).load(url).fit().into(view);

猜你喜欢

转载自blog.csdn.net/qq_43143981/article/details/83748804