正常访问状态! 设为首页 | 加入收藏夹 | 浏览历史  
  http://www.guosp.com
 碧海澜涛居
  海纳百川,有容乃大。壁立千刃,无欲则刚!
 
 
关键词:
  网站首页 | 关于本站 | 技术资料 | 美文日志 | 读书收藏 | 影视收藏 | 软件收藏 | 摄影相册| 留言板 
  技术资料 >> Android技术 关闭(快捷键alt+C)
搜索标签: 暂无标签
教你轻松显示Gif图片
[阅读次数:388次]  [发布时间:2013年12月21日]

大家都知道,Android开发模拟器为了节省内存,一般不支持直接显示gif图片,即使你强制设置了,也只会显示图片的第一帧。看到网上也有许多的方法,来实现此功能,可都比较的繁琐,需要修改android源代码来实现或者用gif解析器来实现。在此文章中,这里教大家一种比较简洁的一个方法,你可以把这个类当做是一种工具类。用的时候,直接搬到程序里面,更改下图片的资源,就可以非常轻松的显示gif图片了。


步骤1看一下这个工具类的实例代码:MyGifView.java

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Movie;

import android.util.AttributeSet;

import android.view.View;

public class MyGifView extends View{

private long movieStart;

private Movie movie;

//此处必须重写该构造方法

public MyGifView(Context context,AttributeSet attributeSet) {

super(context,attributeSet);

//以文件流(InputStream)读取进gif图片资源

movie=Movie.decodeStream(getResources().openRawResource(R.drawable.keyboard));

}

@Override

protected void onDraw(Canvas canvas) {

long curTime=android.os.SystemClock.uptimeMillis();

//第一次播放

if (movieStart == 0) {

movieStart = curTime;

}

if (movie != null) {

int duraction = movie.duration();

int relTime = (int) ((curTime-movieStart)%duraction);

movie.setTime(relTime);

movie.draw(canvas, 0, 0);

//强制重绘

invalidate();

}

super.onDraw(canvas);

}

}

此工具类中,只做了2件事情。1,构造方法;2,重写了onDraw()方法。大家以后用的话,只需拷贝此类到你的工程下即可起作用。


步骤2布局文件代码 activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent" >

<TextView

android:text="====Gif图片测试布局===="

android:layout_height="wrap_content"

android:layout_width="wrap_content"

/>

<com.example.showgifimage.MyGifView

android:id="@+id/iv"

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:layout_margin="20dp"

/>

</LinearLayout>

布局文件中,注意的是:标签的设置 <com.example.showgifimage.MyGifView/>.

格式:包名+.类名


步骤3:activity中调用

public class MainActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

}





本页地址: [复制地址]
该页内容非本站原创 收藏自:http://blog.sina.com.cn/s/blog_73c5cfbe0101b6w5.html
返回顶部 关闭(快捷键alt+C)
评论统计(0条)| 我要评论
暂无评论内容!
我要评论 
我要评论: 带*部分需要填写
 姓名称呼: * 请填写您的姓名或呢称
联系方式: QQ,MSN,Email都可以,方便交流 (仅管理员可见)
 评论内容: * 不超过100字符,50汉字
验证码:
    
  推荐链接
·Android中ListView分页加载...
·android中使用httpclient提...
·android 文件上传(模拟表单...
·Android 自定义类库打包jar...
·Google Maps Android API V...
·Android HttpClient上传文件...
·Java中如何使封装自己的类,...
·Android上传文件到服务器
·Google Maps Android API V...
·Google Maps Android API V...
  最近更新  
·Host 'XXX' is not allowed...
·Win2008或IIS7的文件上传大...
·IIS7.0上传文件限制的解决方...
·测试信息2015-03-11
·asp.net中处理图片
·ASP.NET之Web打印-终极解决...
·Asp.net下C#调用Word模版实...
·asp.net下将页面内容导入到...
·asp.net导出为pdf文件
·asp.net生成pdf文件
·FCKeditor 文本编辑器的使用...
·ASP.NET 将数据生成PDF
·asp.net2.0导出pdf文件完美...
·AspJpeg的安装与测试
·JS验证浏览器版本对IE11的支...
  热门浏览  
·IE8和IE9出现“此网页上的问...
·无线路由器密码破解,教你断...
·js替换所有回车换行符
·QQ/MSN在线交流代码
·如何取消键盘上的一些快捷键...
·IE弹出“中国工商银行防钓鱼...
·win7声音小的解决方法
·强制两端对齐的函数或者CSS...
·webdav漏洞的利用
·win7下成功安装sql server ...
·显示器分辨率调的过高导致电...
·天诺时空技术技术论坛
·js验证手机号码格式
·JS展开和收缩效果(二)
·本地计算机上的 MSSQLSERVE...
  碧海澜涛居
网站首页关于本站站长简介开发案例技术资料美文日志摄影相册读书收藏影视收藏留言板
版权所有:碧海澜涛 QQ:410436434 Email:shaopo_guo@163.com 苏ICP备15000526号
免责声明:本站为个人网站,站内所有文字、图片等各类资料均为个人兴趣爱好所收集,不用作任何商业用途,亦不保证资料的真实性,若有因浏览本站内容而导致的各类纠纷,本站也不承担任何责任。本站部分内容来自互联网,如有涉及到您的权益或隐私请联系站长解决。