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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 要保存webp动图,可以使用Python的Pillow库。以下是保存webp动图的示例代码: ```python from PIL import Image # 打开webp动图 im = Image.open("example.webp") # 保存为gif格式 im.save("example.gif", save_all=True) ``` 在这个例子中,我们使用Pillow库中的Image模块打开了一个webp动图,然后使用save()方法将其保存为gif格式。需要注意的是,我们需要将save_all参数设置为True来保存所有帧。如果不设置该参数,则只会保存第一帧。 希望这个例子可以帮助到你。 ### 回答2: Python可以使用第三方库Pillow来保存webp动图。 Pillow是Python图像处理库,支持多种图像格式的读取和处理,包括webp格式。要保存webp动图,需要首先安装Pillow库。 首先,使用pip命令来安装Pillow库: pip install pillow 安装完成后,在Python脚本中引入Pillow库: from PIL import Image 然后,可以使用Pillow库的Image.open()方法打开webp文件: image = Image.open('动图.webp') 接下来,可以使用Pillow库的Image.save()方法webp动图保存为其他格式,比如png或者gif: image.save('动图.png') 保存为其他格式时,需要根据实际需求指定保存的文件名和文件格式。 此外,Pillow库还提供了其他丰富的图像处理功能,如裁剪、调整大小、旋转等。可以根据具体需求进行处理。 总结起来,要使用Python保存webp动图,需要先安装Pillow库,然后使用Image.open()方法打开webp文件,最后使用Image.save()方法webp动图保存为其他格式。 ### 回答3: 要使用Python保存webp动图,可以使用Pillow库。Pillow是一个强大的图像处理库,支持多种图像格式,包括webp。 首先,确保已经安装了Pillow库。可以使用以下命令在命令行中安装Pillow: ``` pip install pillow ``` 然后,使用下面的代码保存webp动图: ```python from PIL import Image # 打开webp动图 image = Image.open('animated.webp') # 保存为gif动图 image.save('animated.gif', 'gif') print("保存成功") ``` 在这个例子中,我们首先使用`Image.open()`函数打开webp动图。然后,我们使用`image.save()`函数将动图保存为gif格式。你可以根据需要选择其他支持的图像格式,例如png、jpeg等。 最后,运行代码,你会看到保存成功的提示信息,同时在当前目录下会生成一个名为`animated.gif`的动图文件。 使用这种方法,你可以方便地将webp动图保存为其他格式的动图,以便在需要的地方使用
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值