Android图片加载框架——Fresco

简介:      

       Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络、本地存储和本地资源中加载图片,是新一代的图片加载库,因为Android应用程程序的内存通常都不大,经常在图片加载中出现OOM,虽然有各种手段去优化,尽量减少出现 OOM 的可能性,但是永远没法避免。而Facebook就另辟蹊径,既然没法在 Java 层处理,我们就在更底层的Native堆做手脚。于是 Fresco 将图片放到一个特别的内存区域叫 Ashmem 区,就是属于 Native堆,图片将不再占用 App 的内存,Java 层对此无能为力,这里是属于 C++ 的地盘,所以能大大的减少 OOM。所以此库很强大,不过用起来也比较复杂,包也比较大,貌似有2、3M,底层涉及到的 C++ 领域,想读源码也比较困难。


github地址:https://github.com/facebook/fresco

使用实例:

public class FrescoActivity extends AppCompatActivity {

    private SimpleDraweeView mSimpleView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //fresco库初始化
        //写在application的onCreate当中是最好的, 要先初始化库,才能完成布局文件的加载,要写在setContentView之前
        Fresco.initialize(this);
        setContentView(R.layout.activity_fresco);
        mSimpleView = (SimpleDraweeView) findViewById(R.id.simpleDraweeView);
        //建议在布局当中加载属性配置,但是有时在listview复杂加载时会失效。所以就要在代码中写属性配置
        /*
        GenericDraweeHierarchyBuilder builder = new GenericDraweeHierarchyBuilder(getResources());
        GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER)
                .setPlaceholderImage(getResources().getDrawable(R.mipmap.ic_launcher))
                .setFailureImage(getResources().getDrawable(R.mipmap.d_shuai))
                .build();
        mSimpleView.setHierarchy(hierarchy);
        */
        mSimpleView.setImageURI(Uri.parse(ImageUrls.bigImages[3]));
    }
}

<com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/simpleDraweeView"
        android:layout_height="200dp"
        android:layout_width="200dp"
        fresco:actualImageScaleType="centerCrop"
        fresco:backgroundImage="@color/colorAccent"
        fresco:fadeDuration="300"
        fresco:placeholderImage="@mipmap/ic_launcher"
        fresco:placeholderImageScaleType="fitCenter"
        fresco:failureImage="@mipmap/d_shuai"
        fresco:failureImageScaleType="fitCenter"
        fresco:roundAsCircle="false"
        fresco:roundedCornerRadius="40dp"
        fresco:roundBottomLeft="true"
        fresco:roundBottomRight="true"
        fresco:roundTopLeft="true"
        fresco:roundTopRight="true"
        fresco:roundWithOverlayColor="@color/colorPrimary"
        fresco:roundingBorderColor="#00ff00"
        fresco:roundingBorderWidth="5dp"
        ></com.facebook.drawee.view.SimpleDraweeView>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值