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

使用实例:

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. public class FrescoActivity extends AppCompatActivity {  
  2.   
  3.     private SimpleDraweeView mSimpleView;  
  4.   
  5.     @Override  
  6.     protected void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         //fresco库初始化  
  9.         //写在application的onCreate当中是最好的, 要先初始化库,才能完成布局文件的加载,要写在setContentView之前  
  10.         Fresco.initialize(this);  
  11.         setContentView(R.layout.activity_fresco);  
  12.         mSimpleView = (SimpleDraweeView) findViewById(R.id.simpleDraweeView);  
  13.         //建议在布局当中加载属性配置,但是有时在listview复杂加载时会失效。所以就要在代码中写属性配置  
  14.         /* 
  15.         GenericDraweeHierarchyBuilder builder = new GenericDraweeHierarchyBuilder(getResources()); 
  16.         GenericDraweeHierarchy hierarchy = builder.setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER) 
  17.                 .setPlaceholderImage(getResources().getDrawable(R.mipmap.ic_launcher)) 
  18.                 .setFailureImage(getResources().getDrawable(R.mipmap.d_shuai)) 
  19.                 .build(); 
  20.         mSimpleView.setHierarchy(hierarchy); 
  21.         */  
  22.         mSimpleView.setImageURI(Uri.parse(ImageUrls.bigImages[3]));  
  23.     }  
  24. }  

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <com.facebook.drawee.view.SimpleDraweeView  
  2.         android:id="@+id/simpleDraweeView"  
  3.         android:layout_height="200dp"  
  4.         android:layout_width="200dp"  
  5.         fresco:actualImageScaleType="centerCrop"  
  6.         fresco:backgroundImage="@color/colorAccent"  
  7.         fresco:fadeDuration="300"  
  8.         fresco:placeholderImage="@mipmap/ic_launcher"  
  9.         fresco:placeholderImageScaleType="fitCenter"  
  10.         fresco:failureImage="@mipmap/d_shuai"  
  11.         fresco:failureImageScaleType="fitCenter"  
  12.         fresco:roundAsCircle="false"  
  13.         fresco:roundedCornerRadius="40dp"  
  14.         fresco:roundBottomLeft="true"  
  15.         fresco:roundBottomRight="true"  
  16.         fresco:roundTopLeft="true"  
  17.         fresco:roundTopRight="true"  
  18.         fresco:roundWithOverlayColor="@color/colorPrimary"  
  19.         fresco:roundingBorderColor="#00ff00"  
  20.         fresco:roundingBorderWidth="5dp"  
  21.         ></com.facebook.drawee.view.SimpleDraweeView>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 图片选择框架是一种方便开发者在应用中实现图片选择、展示和处理功能的工具。在Android开发过程中,经常需要处理用户选择的图片,比如上传图片、展示图片列表、编辑图片等等,而使用图片选择框架可以大大简化这些操作。 目前比较常用的Android图片选择框架有很多,其中一些比较知名的包括Glide、Picasso、Fresco等。这些框架提供了丰富的功能,可以轻松加载网络图片、本地图片、相册图片等,支持图片大小的处理、缓存、压缩以及图片展示等。 使用这些框架,我们可以通过简单的代码实现图片选择功能。通过调用框架提供的接口,我们可以从相册中选择一张或多张图片,获取图片的路径或URI,然后进行后续的处理,比如上传图片到服务器、展示图片列表、编辑图片等。 另外,这些框架还提供了图片加载的功能,可以帮助我们快速加载要展示的图片,并且支持图片的缓存和压缩。通过使用这些框架,我们可以有效地避免加载大量图片时出现的内存溢出等问题,并且提高图片加载的速度和性能。 总之,Android图片选择框架为开发者提供了一种简单、高效的方式来处理图片选择和展示的需求,极大地简化了开发过程,同时也提高了用户体验。开发者可以根据具体的需求选择适合自己的图片选择框架,以提升应用的功能和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值