Webp动图的使用方法

随着智能设备的应用越来越多,占用内存越来越大,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();
        }
    }
}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值