关于Android 的 Fresco的图片加载,二次采样,色彩矩阵的小总结(随堂笔记)

这几天主要学习了Fresco的图片加载,二次采样,色彩矩阵。

Fresco:是Facebook提供的开源图片加载库,它能够从网络,本地存储和Android资源文件中加载图片。

二次采样是为了让图片减少内存占用,在加载到内存中会进行压缩,减少它占用的内存,

而矩阵:是可以图形变换,变换形状。

色彩矩阵:是和PS的遮罩差不多,可以设置一些图片特效。

在网上最常用的加载框架的来说,Glide是占用最少的。


先说说Fresco是如何使用的,

首先把Fresco的依赖先加载上,

新new个类,设置一下,然后再到配置清单里面注册一下。

之后在xml里面创建组件SimpleDraweeView

在MainActivity里面正常调用一下,用setImageURI("网址")设置一下,就可以正常使用了。

有的时候,网络不好就需要占位图来确定一下。

设置占位图的方法是这样的,在xml中的SimpleDraweeView里面写一个failureImage属性设置一下,

就可以设置加载失败时显示的图。

在Fresco 与Glide相比,Fresco 可以更容易对网络图片进行设置,就比如Fresco 组件的fadeDuration属性可以设置

图片淡出时间,而Glide就只能在图片得到后,设置动画进行显示。

Fresco 组件的roundAsCircle属性可以设置是否是圆形图片,

Fresco 组件的roundingBorderColor属性可以设置图片描边的颜色,

Fresco 组件的roundingBorderWidth可以设置描边的宽度等等。

功能比Glide要多,只是现在用的公司比较少了。


再说一下二次采样,

它的第一步创建一个ImageView并调用,需要先将这个数据变成bitmp类型,

所以第二步创建BitmapFactory.decodeStream( getResources(),图片的id)将数据转换成bitmap

然后再从bitmp类型变成图片占用大小,就要在第三步创建BitmapFactory.decodeByteArray(),就可以获取到图片所占用的内存大小。

其中BitmapFactory.decodeFile()还可以把字节数组变为图片,创建不创建看需求。

还有一点,由于网络图片太大,正常点的手机就这样直接加载20张图片大概就会崩溃,这时候就需要进行压缩处理,二次采样就可以做到这一点,

先创建BitmapFactory.decodeStream( getResources(),图片的id)将图片转换成bitmap,options);

new一个 BitmapFactory.Options ,让BitmapFactory.decodeStream来调用,

在BitmapFactory.Options 再调用 options.outWidth和options.outHeight获取图片的宽高,

就可以设置下一步操作了

接着用BitmapFactory.Options调用inJustDecodeBounds 把它设置成false,

再用BitmapFactory.Options调用inSamlpleSize

将inSamlpleSize 设置一下 ,比如 设置为2,图片就会变成原来的四分之一的的大小,

二次采样就完成了。


ColorMatrix颜色变换,

主要是通过RGBA的方法来调整的。

Matrix图片变换,

对一个图片进行变换的处理。

ColorMatrix颜色变换和Matrix图片变换,这两个功能,正常开发很少用就是了,在网上了解一下就行。

你可能感兴趣的:(关于Android 的 Fresco的图片加载,二次采样,色彩矩阵的小总结(随堂笔记))