Fresco
来源:互联网 发布:系统盘瘦身软件 编辑:程序博客网 时间:2024/06/04 20:13
Fresco是 Facebook 出品,是新一代的图片加载库,因为Android应用程序可用的内存有限,经常会因为图片加载导致OOM,
虽然有各种手段去优化,尽量减少出现 OOM 的可能性,但是永远没法避免,尤其某些低端手机 OOM 更是严重。
而Facebook就另辟蹊径,既然没法在 Java 层处理,我们就在更底层的Native堆做手脚。于是 Fresco 将图片放到一个
特别的内存区域叫 Ashmem 区,就是属于 Native堆,图片将不再占用 App 的内存,Java 层对此无能为力,
这里是属于 C++ 的地盘,所以能大大的减少 OOM。
所以此库很强大,不过用起来也比较复杂,包也比较大,貌似有2、3M,底层涉及到的 C++ 领域,想读源码也比较困难。
github地址:https://github.com/facebook/fresco
中文api:https://www.fresco-cn.org/docs/
步骤
1, 添加依赖
2, 初始化Fresco , 自定义一个Aplication 的子类,
//初始化Fresco
Fresco.initialize(this);
3,在清单文件中引入
4, 在布局页面中, 添加控件
添加命名空间
xmlns:fresco="http://schemas.android.com/apk/res-auto"
<com.facebook.drawee.view.SimpleDraweeView/>
fresco:placeholderImage="@mipmap/ic_launcher” 占位图片
fresco:roundedCornerRadius="1dp" 设置圆角的角度
fresco:roundTopLeft="true" 左上角是否为圆角
fresco:roundTopRight="false"
fresco:roundBottomLeft="false"
fresco:roundBottomRight="true"
fresco:roundWithOverlayColor="@color/corner_color" 填充的颜色
fresco:roundingBorderWidth="2dp" 边界线的宽度
fresco:roundingBorderColor="@color/border_color" 边界线的颜色
5, 在Activity中加载图片
sdv.setImageUri (uri);
实例代码
导入依赖:
compile 'com.facebook.fresco:fresco:1.5.0'
MyApp.java --- 要记得在清单文件中引入哦
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
//初始化Fresco
Fresco.initialize(this);
}
}
布局页面
<com.facebook.drawee.view.SimpleDraweeView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/sdv"
fresco:placeholderImage="@mipmap/ic_launcher"
fresco:roundedCornerRadius="20dp"
fresco:roundTopLeft="true"
fresco:roundTopRight="true"
fresco:roundBottomLeft="true"
fresco:roundBottomRight="true"
fresco:roundWithOverlayColor="@color/colorAccent"
fresco:roundingBorderWidth="10dp"
fresco:roundingBorderColor="@color/colorPrimary"
/>
Activity 加载图片
//加载图片
String imgPath = "http://img.my.csdn.net/uploads/201407/26/1406383299_1976.jpg";
Uri uri = Uri.parse(imgPath);
mSdv.setImageURI(uri);
阅读全文
0 0
- Fresco
- Fresco
- Fresco
- fresco
- Fresco
- fresco
- Fresco
- Fresco
- Fresco
- Fresco
- Fresco
- Fresco
- fresco
- Fresco
- Fresco
- Fresco
- Fresco
- fresco
- Linux中ACL默认权限与递归权限
- 什么是Web应用程序
- Linux中sudo权限(下)
- ajax上传图片
- 使用maven构建Web项目
- Fresco
- 事件委托原理
- Linux中SetUID(上)
- Linux中SetUID(下)
- 手工编写第一个Java Web程序
- Linux中SetGID
- 2.1标识符与关键字
- 搭建Java Web开发环境——Tomcat
- C++数据结构用一个变量或一个临时栈实现栈的复制