Android 加载gif动画

今天想在应用的Loading页面加载一个gif动画,但又不知道怎么弄,就网上搜了下,看到好多人都是使用[email protected]写的GifView.jar包,

于是就简单了解了一下:

看了下作者的源码,编写的GifView继承自View,那么在使用的时候也就很方便了,可以当做一个普通的UI组件来用。

在使用普通的UI组件的时候,我们一般都使用如下的方式:

<Button
        android:id="@+id/submit"
        android:layout_width="120dp"
        android:layout_height="60dp"
        android:text="@string/submitBtn"
/>

而对于我们自定义的UI控件,我们采用的一般为如下的方式:

<包名.类名

属性:值

...

/>

那么,对于这种方法,GifView肯定也适用,需要注意的是:GifView所在的包名要写正确,否则你将GifView.jar加入到你的工程后,布局文件肯定

会报错,作者所写的GifView类所在的包名为:com.ant.liao 那么我们就可是使用如下方式来写gif动画组件的布局文件了:

<com.ant.liao.GifView
        android:id="@+id/gif"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
/>

PS:需要的属性值自己配置.

完成了布局文件,接下来就是要对gif文件进行加载等工作了(在OnCreate中添加如下代码):

gf1 = (GifView) findViewById(R.id.gif);

// 设置Gif图片源

gf1.setGifImage(R.drawable.gif);

// 设置显示的大小,拉伸或者压缩

gf1.setShowDimension(400, 400);

// 设置加载方式:先加载后显示、边加载边显示、只显示第一帧再显示

gf1.setGifImageType(GifImageType.COVER);

PS:加载方式的说明:

看了下作者的源码,对于加载方式是这样定义的:

public enum GifImageType{
        /**
         * 在解码过程中,不显示图片,直到解码全部成功后,再显示
         */
        WAIT_FINISH (0),
        /**
         * 和解码过程同步,解码进行到哪里,图片显示到哪里
         */
        SYNC_DECODER (1),
        /**
         * 在解码过程中,只显示第一帧图片
         */
        COVER (2);

        GifImageType(int i){
            nativeInt = i;
        }
        final int nativeInt;
    }

也就是说,作者提供了三种加载方式,使用时可根据不同的需求来定义。

对于动画显示大小的设置,个人觉得欠妥,以具体的数字来设置,可能会影响动画的质量,所以要想获取原动画的质量,可以通过获取原动画的大小来设

置动画的显示区域:

bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.gif);
     width = bitmap.getWidth();
     height = bitmap.getHeight();
     gf1.setShowDimension(width, height);

至此,一个gif动画便已加载完成!

时间: 2024-08-05 06:49:25

Android 加载gif动画的相关文章

Android 自定义View修炼-自定义加载进度动画LoadingImageView

一.概述 本自定义View,是加载进度动画的自定义View,继承于ImageView来实现,主要实现蒙层加载进度的加载进度效果. 支持水平左右加载和垂直上下加载四个方向,同时也支持自定义蒙层进度颜色. 直接看下面的效果图吧. 二.效果图 废话不说,先来看看效果图吧~~ 三.实现原理方案 1.自定义View-XCLoadingImageView,继承ImageVIew来实现,这样就不用自己再处理drawable和测量的工作内容. 2.根据蒙层颜色创建一个蒙层bitmap,然后根据这个bitmap来

android加载框效果《IT蓝豹》

android加载框效果 android加载框效果,本例子有几种效果弹出dialog,本例子主要自定义SVProgressHUD 类,本例子来源:https://github.com/saiwu-bigkoo/Android-SVProgressHUD主要代码如下: public enum SVProgressHUDMaskType {            None,  // 允许遮罩下面控件点击               Clear,     // 不允许遮罩下面控件点击         

安卓加载listview动画

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"           android:delay="30%"           android:animationOrder="reverse"           android:animation="@anim/slide_right" />          

有效解决Android加载大图片时内存溢出的问题

首先解析一下基本的知识: 位图模式,bitmap颜色位数是1位 灰度模式,bitmap颜色位数是8位,和256色一样 RGB模式,bitmap颜色位数是24位 在RGB模式下,一个像素对应的是红.绿.蓝三个字节 CMYK模式,bitmap颜色位数是32位  在CMYK模式下,一个像素对应的是青.品.黄.黑四个字节 图像文件的字节数(Byte) = 图像分辨率*颜色深度/8(bit/8) 例如:一幅640*480图像分辨率.RGB色一般为24位真彩色,图像未经压缩的数据容量为:640X480X24

记:Ubuntu14.04 Android加载项目失败

Android 加载项目失败: sdk/build-tools/android-4.4.2/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory 安装: sudo apt-get install lib32z1 记:Ubuntu14.04 Android加载项目失败,布布扣,bubuko.com

Android加载大图片到内存

加载大图片到内存 步骤: 步骤一: 获取品屏幕的宽高数据;[HD1] 步骤二: 获取图片的宽高;[HD2] 步骤三: 计算屏幕与图片的宽高比例,按照差距最大的进行缩放处理;[HD3] 步骤四: 图片的缩放处理;[HD4] [HD1]// 获取手机的屏幕的窗体大小 WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); Display display = windowManager.getDef

Android -- 加载大图片的方法

在android中要加载一张大图片到内存中如果通过如下方式进行: Bitmap bitmap= BitmapFactory.decodeFile("/sdcard/a.jpg"); iv.setImageBitmap(bitmap); 则会抛出内存溢出异常Caused by: java.lang.OutOfMemoryError 正确的做法应该是这样的: public class MainActivity extends Activity { private ImageView iv;

android加载大量图片内存溢出的三种方法

android加载大量图片内存溢出的三种解决办法 方法一:  在从网络或本地加载图片的时候,只加载缩略图. /** * 按照路径加载图片 * @param path 图片资源的存放路径 * @param scalSize 缩小的倍数 * @return */ public static Bitmap loadResBitmap(String path, int scalSize) { BitmapFactory.Options options = new BitmapFactory.Option

Android加载大图片(压缩)

转载自http://blog.csdn.net/junjx/article/details/7798604 在Android开发中,我们经常需要加载图片.但是图片的尺寸往往会很大,如果我们要的是比较小的图片,在Android有限的内存下,我们显然不能把大尺寸的图片放到内存里,这样不但效率降低,而且会导致java.lang.OutOfMemory异常,相信很多朋友都遇到过这样的问题,那么该怎么解决这一问题呢?其实在Android官方文档中早已给出了解决的方案. 一.读Bitmap的尺寸和类型