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);