前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2014-10-31Android学习------在小窗口Dialog中实现GIF动画--------GIF动画实现

2014-10-31Android学习------在小窗口Dialog中实现GIF动画--------GIF动画实现

作者头像
wust小吴
发布2022-03-07 13:45:23
6220
发布2022-03-07 13:45:23
举报
文章被收录于专栏:风吹杨柳风吹杨柳

我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的个GIF动画完美实现 源码 百度搜就知道很多下载的地方 我写的东西有可能比较乱,如果单一的篇章没看明白,请看上一篇文章

上篇文章 地址:http://blog.csdn.net/u014737138/article/details/40709035

上篇文章介绍的是如何处理一个GIF动画,我们只是简单的让它在当前的窗口中显示,

我们还可以让它在小窗口中显示,很简单,只需要加个Dialog类就可以了,

先看下效果把:

代码实现: import com.wust.gif.R; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.graphics.Canvas; import android.graphics.Movie; import android.os.Bundle; import android.view.View; public class MainActivity extends Activity { public Movie mMovie; public long mMovieStart; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); //setContentView(new CustomGifView(this)); Dialog customDialog = new Dialog(this); customDialog.setTitle("GIF"); customDialog.setContentView(new CustomGifView(this)); customDialog.show(); } class CustomGifView extends View { public CustomGifView(Context context) { super(context); mMovie = Movie.decodeStream(getResources().openRawResource( R.drawable.animation)); } public void onDraw(Canvas canvas) { long now = android.os.SystemClock.uptimeMillis(); if (mMovieStart == 0) { // first time mMovieStart = now; } if (mMovie != null) { int dur = mMovie.duration(); if (dur == 0) { dur = 1000; } int relTime = (int) ((now - mMovieStart) % dur); mMovie.setTime(relTime); mMovie.draw(canvas, 0, 0); invalidate(); } } } }

对比上篇文章的源码,只需要看这里的红色代码,就这样操作。希望对你有用

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档