动态图片 gif

简介


android不推荐使用gif图片,一般都是png的,对于gif的图片解析比较消耗资源,但是对于一些动态gif图片的播放,如果比较小的话还是可以的,要是大的话,建议还是把gif图片转换成一帧一帧的png图片,然后通过animation播放。

对于小的gif动态图片,可以通过Movie来播放。

注意,不能再布局中以自定义view的形式使用。


Activity


public class MainActivity extends Activity {

    LinearLayout root;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        root = (LinearLayout) findViewById(R.id.root);

        root.addView(new CustomGifView(this, R.drawable.loading));

    }

}

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/root"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:background="#666"     android:orientation="vertical" >     <TextView         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:text="简单的展示GIF动态图" /> </LinearLayout>

自定义View


/** 

 * 自定义View 播放Gif动画  

 */

public class CustomGifView extends View {

    private Movie mMovie;

    private long mMovieStart;

    public CustomGifView(Context context, int resId) {

        super(context);

        //读入字节流(或字节数组或文件)来解码创建Movie对象

        mMovie = Movie.decodeStream(getResources().openRawResource(resId));

    }

    public void onDraw(Canvas canvas) {

        long now = android.os.SystemClock.uptimeMillis();//系统当前时刻

        //第一次播放 

        if (mMovieStart == 0) 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();

        }

    }

}

来自为知笔记(Wiz)

时间: 2024-12-25 08:16:23

动态图片 gif的相关文章

atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js

atitit.GUI图片非规则按钮跟动态图片切换的实现模式总结java .net c# c++ web html js 1. 图片按钮的效果总结 1 1.1. 按钮图片自动缩放的. 1 1.2. 不要边框,如果用自定义图片做按钮背景可以设为 false. 2 1.3. 异形按钮 2 1.4. 不绘制焦点 2 1.5. 鼠标经过时的图标 2 1.6. 选中时的图标 2 1.7. 禁用时显示的图标 2 1.8. 可能需要按钮半透明效果 2 2. 图片按钮的实现 2 2.1. 优先模式:button控

如何在html5的canvas画布中绘制gif动态图片

我们都知道如何在html5的canvas画布上绘制静态图片(jpeg, png等),直接用canvas中的drawImage方法即可,那么如何绘制动态图片(gif)? 相信大家都知道动态图片之所以动态,是因为它是由很多图片按一定的帧数顺序播放而成的,因此我们是否也可以模拟这样的帧数,每隔一定的时间重新 绘制图片,就能画出动态图片呢?答案当然是YES.下面就是我自己测试的一个例子,代码如下: 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 &l

微信分享文本、图片(本地、二进制、网络图片)、音频、视频、Gif动态图片、网页信息--大汇总

首先是申请微信开放平台https://open.weixin.qq.com/ 根据提示在管理中心创建一个移动应用,最好是自己的公司的上线APP,这样审批容易通过, 审批通过后,会为创建的移动应用下发APP_ID.AppSecret 另外在网站上下载android版本的jar包即可libammsdk.jar 即可进行操作了 ~~~~~~~~~~~~~~~~开始吧,用的测试机,没有sd卡,另外我的台式机没有wifi,所以代码没测试,我后期会补上的~~~~~~~~~~~~~~~~~ activity_

展示动态图片(播放一组图片)

//展示动态图片(播放一组图片)    //创建做动画的图片,存储到数组中    NSMutableArray * animationImages = [NSMutableArray array];    for (int i = 0 ; i < 7 ; i ++) {        UIImage * image1 = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString string

Android之动态图片

在Android中,比起静态图片来动态图片会更加生动更加酷炫,因为这种视觉效果,你应该会发现我们手机中大多数应用软件的导航页面也都是采用动态图片来展示.动态图片的格式有gif.png格式等等. 我们就来看看动态图片,我们可以先自定义SurfaceView视图,然后在MainActivity中添加显示方法就行了. MainActivity: package com.cdp.dongtaitupian;; import android.app.Activity; import android.os.

【Mac】使用PicGIF制作gif动态图片

动态图片是我们常常需要的,mac系统下制作gif图片,可以使用PicGIF,AppStore中有一个简单版本免费的 环境与工具 1.mac系统 2.PicGIF Lite(可以在AppStore下载) 使用方法 1.下载并装好PicGIF Lite后,打开软件 2.选择添加图片(也可以添加视频),并添加图片 3.设置gif图片的属性,以及特效 4.设置完成,点击播放,预览效果 5.生成gif图片,并保存 作品

Android—基于GifView显示gif动态图片

android中显示gif动态图片用到了开源框架GifView 1.拷GifView.jar到自己的项目中. 2.将自己的gif图片拷贝到drawable文件夹 3.在xml文件中设置基本属性: <com.ant.liao.GifView android:id="@+id/gifView" android:layout_centerInParent="true" android:layout_width="wrap_content" and

JavaEE动态图片验证

Form.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+req

python tkinter中嵌入gif图片(动态图片)

# -*- coding: cp936 -*- #python 27 #xiaodeng #在tkinter中嵌入gif图片(动态图片) from Tkinter import * def main(): filename = 'test.gif' root = Tk() img = PhotoImage(file=filename) label = Label(root, image=img) label.pack() root.mainloop() main()