`
wiseideal
  • 浏览: 449720 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

利用Movie播放GIF

阅读更多

 

public class ViewContent extends View{

	Movie movie;
	long mStart;
	
	public ViewContent(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
		InputStream is = getResources().openRawResource(R.drawable.g1);
		movie = Movie.decodeStream(is);
	}
	
	public ViewContent(Context context){
		this(context, null);
		setFocusable(true);
	}
	
	@Override
	protected void onDraw(Canvas canvas) {
		// TODO Auto-generated method stub
		int duration = movie.duration();
		long now = android.os.SystemClock.uptimeMillis();
		if(mStart == 0){
			mStart = now;
		}
		movie.setTime((int) ((now - mStart) % duration));
		movie.draw(canvas,0, 0);
		invalidate();
	}

}

关键的地方有两处

 

1.

 

movie.setTime((int) ((now - mStart) % duration));

 此处设置播放gif的某一个时间的动画 单位为毫秒 这句话保证当前播放的都是对应当前时间的画面。

 

2.

movie.draw(canvas,0, 0);
invalidate();

 这里是绘制此gif的某一帧,并刷新本身,从而又调起了onDraw方法,如此动画的效果就达到了。

分享到:
评论
1 楼 somefuture 2015-10-29  
我每次走到movie.draw(canvas,0, 0);  这里就退出了 Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1) 怎么搞呢

相关推荐

    视频转GIF软件Movie To GIF 3.3.1.0

    今天我们将详细介绍“Movie To GIF 3.3.1.0”,这款专为视频转GIF设计的软件,以及如何利用它来实现我们的需求。 “Movie To GIF”是一款功能强大的转换工具,其最新版本3.3.1.0提供了更加稳定和流畅的转换体验。...

    andorid播放gif汇总。包括单张图、webview、第三方库播放、jni方式播放gif

    另一个方法是利用`WebView`组件,它可以内建地支持GIF播放。只需加载包含GIF的网页或者直接设置`WebView`的`data`属性为GIF的Base64编码。这种方法的优点是用户体验良好,但会增加应用的内存消耗,且`WebView`加载...

    ha_GIFMovieGearGIF Movie Gear 4.2.3 (注册码)

    **标题解析:** "ha_GIFMovieGearGIF Movie Gear 4.2.3 (注册码)...综上所述,GIF Movie Gear 4.2.3 是一个强大的GIF动画制作工具,通过提供的注册码,用户可以充分利用其所有功能,进行各种创新和个性化的GIF创作。

    Android通过Movie展示Gif格式图片

    本节将详细讲解如何利用Movie类来实现这一功能,以及在`CommonGifView`这个自定义视图中展示GIF图像的步骤。 首先,Movie类是Android SDK中处理动画GIF的关键。它可以从一个InputStream或Bitmap中解码GIF数据,并...

    GIF Movie Gear 3.0.1

    1. **GIF动画创建与编辑**:用户可以利用GIF Movie Gear从零开始创建GIF动画,或对现有的GIF进行编辑,包括添加、删除帧,调整帧速率,改变颜色深度等。 2. **图像导入与导出**:支持多种图像格式的导入与导出,如...

    glide加载gif 降低cpu

    为了优化,我们可以创建一个自定义的GIFDecoder,利用Android 7.0(API级别24)及以上版本提供的`android.graphics.Movie`类来解码GIF,这个内置的解码器在硬件加速方面做得更好。 以下是实现这一优化的步骤: 1. ...

    GIF Movie Gear(GIF图片编辑软件)

    在本文中,我们将深入探讨GIF Movie Gear的主要特点、功能以及如何利用它来提升你的GIF制作技能。 1. **GIF格式基础** GIF(Graphics Interchange Format)是一种流行的图像文件格式,特别适合用于在网络上传输...

    android播放gif文件

    - 解析GIF:利用`javax.imageio.ImageIO`或第三方库如`android.graphics.Movie`解析GIF文件,获取每一帧的图像。 - 绘制GIF:在`onDraw()`方法中,根据当前时间计算应该绘制的帧,然后调用`canvas.drawBitmap()`...

    GIF Movie Gear

    GIF Movie Gear正是利用这些特性,为用户提供了一个直观且易用的平台,让他们能够轻松创建出富有创意的GIF动图。 在GIF Movie Gear中,用户可以导入多帧静态图像,通过设定帧速率和顺序,将它们合成为流畅的动画。...

    GIF Movie Gear 简易教程

    **GIF Movie Gear简易教程** GIF Movie Gear是一款专为创建和编辑GIF动画而设计的强大工具,尤其适合那些希望快速、轻松制作动画而又不想陷入复杂操作的用户。这款软件以其直观的界面和丰富的功能,使得即便是初学...

    GIF Movie Gear 动画制作软件

    GIF Movie Gear是一款专业的GIF动画制作软件,它为用户提供了强大的工具集,使得创建、编辑和优化GIF动画变得更加简单。在深入了解这款软件之前,我们先来了解一下GIF格式的基本知识。 GIF(Graphics Interchange ...

    GIF Movie Gear(制作)

    8. **倒放与循环**:GIF Movie Gear 支持倒序播放和无限循环,让动图呈现出有趣的视觉效果。 ### 使用技巧 - **合理规划帧顺序**:在制作动画前,先规划好帧的顺序和内容,有助于提高效率。 - **利用关键帧**:在...

    android中显示本地或网络GIF图片

    本篇文章将详细介绍如何在Android应用中利用`Movie`类来显示本地和网络的GIF图片。 首先,我们要了解`Movie`类。`Movie`是Android SDK中的一个类,它主要用于解析和播放动画图像,如GIF格式。这个类提供了从数据源...

    Android之gif动画实现

    Android系统提供了一个名为`android.graphics.Movie`的类,它可以解析GIF文件并播放。首先,我们需要从资源文件中读取GIF数据,然后创建Movie对象,通过`Movie.decodeStream()`方法解码。之后,我们可以在`onDraw()...

    Android实现可播放GIF动画的ImageView

    在Android开发中,由于原生的ImageView控件不支持直接播放GIF动画,开发者需要自定义组件来实现这一功能。本篇文章将详细讲解如何在Android中创建一个名为GifImageView的自定义视图,该视图能够播放GIF动画。 首先...

    Android 使用gif图

    因此,通常需要第三方库来实现更流畅的GIF播放。 三、第三方库 1. Glide:Glide是一个强大的Android图像加载库,它支持GIF加载。通过添加Glide的GIF模块,可以在ImageView中轻松显示GIF。例如: ```java Glide.with...

    GIF movieGear GIF动画制作

    GIF Movie Gear充分利用了这种格式的优势,提供了一系列功能,使得动画制作过程变得简单而高效。 1. **用户界面**:GIF Movie Gear以其直观的用户界面著称,适合初学者和专业人士使用。主窗口分为几个主要区域,...

    Android代码-如何使用GIF图片.zip

    3. **自定义GIFView**:如果你有特殊需求,可以考虑自定义一个GIFView,利用Android的BitmapFactory和Movie类。首先,从资源中读取GIF数据: ```java Movie movie = Movie.decodeStream(getResources()....

Global site tag (gtag.js) - Google Analytics