首页 > 代码库 > Android 加载gif动画
Android 加载gif动画
今天想在应用的Loading页面加载一个gif动画,但又不知道怎么弄,就网上搜了下,看到好多人都是使用ant.cy.liao@gmail.com写的GifView.jar包,
于是就简单了解了一下:
看了下作者的源码,编写的GifView继承自View,那么在使用的时候也就很方便了,可以当做一个普通的UI组件来用。
在使用普通的UI组件的时候,我们一般都使用如下的方式:
<包名.类名
属性:值
...
/>
那么,对于这种方法,GifView肯定也适用,需要注意的是:GifView所在的包名要写正确,否则你将GifView.jar加入到你的工程后,布局文件肯定
会报错,作者所写的GifView类所在的包名为:com.ant.liao 那么我们就可是使用如下方式来写gif动画组件的布局文件了:
完成了布局文件,接下来就是要对gif文件进行加载等工作了(在OnCreate中添加如下代码):
gf1 = (GifView) findViewById(R.id.gif);
// 设置Gif图片源
gf1.setGifImage(R.drawable.gif);
// 设置显示的大小,拉伸或者压缩
gf1.setShowDimension(400, 400);
// 设置加载方式:先加载后显示、边加载边显示、只显示第一帧再显示
gf1.setGifImageType(GifImageType.COVER);
PS:加载方式的说明:
看了下作者的源码,对于加载方式是这样定义的:
对于动画显示大小的设置,个人觉得欠妥,以具体的数字来设置,可能会影响动画的质量,所以要想获取原动画的质量,可以通过获取原动画的大小来设
置动画的显示区域:
于是就简单了解了一下:
看了下作者的源码,编写的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动画便已加载完成!
Android 加载gif动画
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。