Fresco加载图片模版
来源:互联网 发布:史克威尔艾尼克斯 知乎 编辑:程序博客网 时间:2024/05/22 05:25
(1)在项目的build.grade文件里添加依赖(注意:因为Fresco进行了包的拆分,用到哪个功能就添加对应的依赖,可以减少APP的体积)
dependencies {
//Fresco,无论使用哪个模块的功能,都必须要添加的基础依赖
compile 'com.facebook.fresco:fresco:0.14.1'
//下面的依赖根据需求,用到哪个模块,就导入对应的依赖即可.
// 仅支持 WebP 静态图,需要添加
compile 'com.facebook.fresco:webpsupport:0.14.1'
// 支持 GIF 动图,需要添加
compile 'com.facebook.fresco:animated-gif:0.14.1'
// 支持 WebP静态图及 WebP 动图,需要添加
compile 'com.facebook.fresco:animated-webp:0.14.1'
compile 'com.facebook.fresco:webpsupport:0.14.1'
// 在 API < 14 上的机器支持 WebP 时,需要添加
compile 'com.facebook.fresco:animated-base-support:0.14.1'
}
(2)在application中初始化Fresco(记得在清单文件里配置application)
Fresco.initialize(this);
(3)配置网络权限
<uses-permission android:name="android.permission.INTERNET"/>
(4)在xml布局文件中,加入命名空间
<!-- 其他元素-->
<LinearLayout
xmlns:fresco="http://schemas.android.com/apk/res-auto">
(5)在xml中引入SimpleDraweeView控件(fresco:placeholderImage="@drawable/my_drawable":默认占位图片)
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/my_image_view"
android:layout_width="130dp"
android:layout_height="130dp"
fresco:placeholderImage="@drawable/my_drawable"
/>
2.Fresco的基本使用
(1)在Java代码中开始加载图片
//加载网络图片的网址
Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");
//初始化控件
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
//加载图片
draweeView.setImageURI(uri);
加载本地图片:
Uri uri = Uri.parse("res://包名(实际可以是任何字符串甚至留空)/" + R.drawable.ic_launcher);
加载SD卡图片:
String fileName = "/11111.jpg";String sdcardPath = Environment.getExternalStorageDirectory().getPath();loadFile(myImageView,sdcardPath+fileName,120,120);//加载SD卡图片,图片选绝对路径方法:
public static void loadFile(final SimpleDraweeView draweeView, String filePath, final int reqWidth, final int reqHeight) { Uri uri = new Uri.Builder() .scheme(UriUtil.LOCAL_FILE_SCHEME) .path(filePath) .build(); ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri) .setRotationOptions(RotationOptions.autoRotate()) .setLocalThumbnailPreviewsEnabled(true) .setResizeOptions(new ResizeOptions(reqWidth, reqHeight)) .build(); DraweeController controller = Fresco.newDraweeControllerBuilder() .setImageRequest(request) .setOldController(draweeView.getController()) .setControllerListener(new BaseControllerListener<ImageInfo>() { @Override public void onFinalImageSet(String id, @Nullable ImageInfo imageInfo, @Nullable Animatable anim) { if (imageInfo == null) { return; } ViewGroup.LayoutParams vp = draweeView.getLayoutParams(); vp.width = reqWidth; vp.height = reqHeight; draweeView.requestLayout(); } }) .build(); draweeView.setController(controller);}
布局改变图片形状:
fresco:roundAsCircle="true" 圆形图
fresco:roundedCornerRadius="25dp"圆角图
- Fresco加载图片模版
- Fresco 加载本地图片
- Fresco图片加载组件
- 图片加载Fresco
- 使用Fresco加载图片
- 图片加载利器--Fresco
- Fresco图片加载工具
- 图片加载库Fresco
- fresco加载本地图片
- 使用Fresco加载图片
- Fresco图片加载
- Fresco图片加载框架
- 使用Fresco加载图片
- 图片加载框架-Fresco
- Fresco图片加载
- Fresco加载图片优化
- fresco加载图片
- Fresco图片加载框架
- SylixOS下移植glib时clock_gettime函数分析
- 这个用两条腿走路的机器人会有怎样的未来 | 漫读
- 南方人在没暖气的冬天里歇斯底里
- 小白每天学习两个函数D8-(sscanf,vscanf)
- 【51nod】--1001 数组中和等于K的数对(sort&&二分)
- Fresco加载图片模版
- 注释转换(c风格转为c++风格)
- Spring环境搭建(下)
- 最近一直困扰的一件事,powerShell里面运行python脚本不成功
- 五子棋AI算法-Alpha Beta剪枝
- 在Ubuntu17.10搭建pytorch环境
- oracle递归函数--oracle start with connect by 用法
- Spring MVC系列(二):拦截器配置
- hdu 1505,1506