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

本文介绍了如何在Android应用中实现在小窗口显示GIF动画的效果。通过使用Dialog类及自定义视图CustomGifView,可以轻松地将GIF动画嵌入到对话框中。文章提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写一篇文章很辛苦啊!!!

转载请注明,联系请邮件nlp30508@qq.com


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

上篇文章  地址:http://blog.youkuaiyun.com/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();
}
}
}
}


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值