您的位置:首页 > 其它

Webp动图的使用方法

2016-05-28 17:56 232 查看
随着智能设备的应用越来越多,占用内存越来越大,apk的大小也逐渐被关注,而影响apk大小的一个很主要的原因就是图片占用内存太多,目前,比较好的使用方法是使用webp格式的图片,或者动图加载,能够将apk的大小减小到40%左右。

现在Android对于webp普通的图片适配已经做的比较好了,就像普通的图片加载方式一样加载就可以了。

对于webp动图,这里就需要借助工具了。

首先加载依赖工具dependencies {
compile 'com.facebook.fresco:fresco:0.9.0+'
}
下面是我自己写的一个工具类,直接使用即可

/**
* <p>
* Description:
* </p>
*
* @author dailei
* @version V1.0.0
* @className WebpAnimate
* @date 2016/5/12
*/
public class WebpAnimate
{
private SimpleDraweeView mSimpleDraweeView = null;
private Context mContext = null;

public WebpAnimate(Context context)
{
mContext = context;
}

/**
* 概述:webp动图的展示<br/>
* 适用条件:<br/>
* 执行流程:<br/>
* 使用方法:<br/>
* 注意事项:<br/>
*
* date 16/4/28
*/
public View webpAnimateView()
{
if (mSimpleDraweeView != null)
{
mSimpleDraweeView = null;
}
Fresco.initialize(mContext); //使用webp动图,在加载之前必须先使用此方法

mSimpleDraweeView = new SimpleDraweeView(mContext);
return mSimpleDraweeView;
}

public void webpAnimateStart(String path)
{
ControllerListener controllerListener = new BaseControllerListener<ImageInfo>()
{
@Override
public void onFinalImageSet(
String id,
@Nullable ImageInfo imageInfo,
@Nullable Animatable anim)
{
if (anim != null)
{
// app-specific logic to enable animation starting
anim.start();
}
}
};
File file = new File(path);
Uri uri = Uri.parse("file://" + file);
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(uri)
.setControllerListener(controllerListener)
.build();
mSimpleDraweeView.setController(controller);
Animatable animation = mSimpleDraweeView.getController().getAnimatable();
if (animation != null)
{
// 开始播放
animation.start();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: