Android开发--动态图片的显示

Android开发——动态图片的显示

一、动态图片的显示方式

        在编码的时候我们可以轻松显示静态图片,然而当我们加载动态图片的时候,它显示的还是一张静态图,达不到动态的效果,也就起不到吸引用户的作用,今天我将分享自己的亲身实践,总结出了两种加载动态图片的方式,下面就让我为大家介绍这两种方式:

       1.用到GifView.jar,首先我们需要在网上下载这个jar包,然后导入到我们的工程里面的文件夹libs里面,如果是android studio,需要右击选择add as library,等重新运行成功后即可使用。这里我为大家提供一个下载地址:百度网盘链接:http://pan.baidu.com/s/1c14wrPe 密码:5dsx。

Android开发--动态图片的显示_第1张图片

       2.用到GifImageView这个jar包,在网上还没有搜到,但是android studio可以在Project Structure中搜索,然后设置依赖,同样可以使用。

Android开发--动态图片的显示_第2张图片

点击选中的条目,会出现下图:

Android开发--动态图片的显示_第3张图片

在搜索框中输入GifImageView,点击后面的搜索按钮,会出现下面显示的2.1.0结果,然后点击OK即可,等待产生依赖。

二、布局文件中实现:

1.GifView   注意这块要使用全类名

Android开发--动态图片的显示_第4张图片

2.GifImageView     注意这块要使用全类名


其余的设置基本的参数就不多做介绍了。。。

三、代码中实现

1.GifView

    /**
     * GifView获取图片资源
     */
    private void gifView(){
        try {
            InputStream is = this.getResources().openRawResource(R.drawable.che);//获取动图资源
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] b = new byte[2048];
            int len = 0;
            while ((len = is.read(b, 0, 2048)) != -1) {
                baos.write(b, 0, len);
            }
            baos.flush();//刷新流,确保传递完全
            byte[] bytes = baos.toByteArray();//转换成Byte数组
            mGif.setGifImage(bytes);
            // 添加监听器
            //gif.setOnClickListener(this);
            // 设置显示的大小,拉伸或者压缩,由于GiftView在布局文件中设置宽和高无效,所以要设置宽和高
            mGif.setShowDimension(500, 200);
            // 设置加载方式:先加载后显示、边加载边显示、只显示第一帧再显示
            mGif.setGifImageType(GifView.GifImageType.WAIT_FINISH);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

2.GifImageView

    /**
     * GifImageView获取图片资源并通过流的形式传递到
     */
    private void gifImageView() {
        try {
            InputStream is = this.getResources().openRawResource(R.drawable.che);//获取动图资源
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] b = new byte[2048];
            int len = 0;
            while ((len = is.read(b, 0, 2048)) != -1) {
                baos.write(b, 0, len);
            }
            baos.flush();//刷新流,确保传递完全
            byte[] bytes = baos.toByteArray();//转换成Byte数组
            mImg.setBytes(bytes);//设置gif图片
            mImg.startAnimation();//运行动画
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
在手机上的运行效果图:

Android开发--动态图片的显示_第5张图片

四、总结

        以上两种显示动图的方法只是加载了本地的动态图片,要下载并显示网上的动态图片,就需要使用异步任务,连接网络,下载动态图片,具体的实现方法会在后续的文章中给大家揭晓,欢迎关注我的博客。

你可能感兴趣的:(Android,app)