android实现gif动态图的使用
来源:互联网 发布:四海承风软件 编辑:程序博客网 时间:2024/04/28 21:15
在android中显示一个静态图片比如png jpg等等都很方便,但是如果要显示一个gif 动态图片就需要进行一些处理。
本文是采用自定义view 然后进行重新onDraw方法来实现
首先自定义View【MyGifView.java】
[java] view plaincopy
/** * MyGifView.java * Copyright(C) 2014 * creator:cuiran 2014-5-16 下午2:01:56 */ package com.cayden.videodemo.view; import com.cayden.videodemo.R; import android.content.Context; import android.graphics.Canvas; import android.graphics.Movie; import android.util.AttributeSet; import android.view.View; /** * 自定义View 播放gif动画 * @author cuiran * @version 1.0.0 */ public class MyGifView extends View { private long movieStart; private Movie movie=Movie.decodeStream(getResources().openRawResource(R.drawable.football)); private MyGifView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); // TODO Auto-generated constructor stub } private MyGifView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public MyGifView(Context context) { super(context); // TODO Auto-generated constructor stub } /* (non-Javadoc) * @see android.view.View#onDraw(android.graphics.Canvas) */ @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub 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); } }
然后写Activity
[java] view plaincopy
/** * GifMainActivity.java * Copyright(C) 2014 * creator:cuiran 2014-5-16 下午2:10:29 */ package com.cayden.videodemo; import com.cayden.videodemo.view.MyGifView; import android.app.Activity; import android.os.Bundle; /** * TODO * @author cuiran * @version 1.0.0 */ public class GifMainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //第一种 直接使用代码 MyGifView gifView=new MyGifView(getApplicationContext()); setContentView(gifView); //第二种采用xml 貌似出错了????? // setContentView(R.layout.gif_main); } }
本来还可以使用布局xml的但是报错了
[java] view plaincopy
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 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.cayden.videodemo.view.MyGifView android:id="@+id/iv" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_margin="20dp" /> </LinearLayout>
0 1
- android实现gif动态图的使用
- android显示gif动态图的方法
- Android 支持Gif动态图 的imagview
- android-gif-drawable 加载太多的gif,有时gif动态图不动
- 使用CSS3实现动态加载gif图片的效果
- android gif动态图显示
- Android中使用Movie显示gif动态图
- Android中使用Movie显示gif动态图
- android中gif图实现的方案
- gif动态框架使用问题(android-gif-drawable)
- android studio中使用android-gif-drawable开源项目实现gif图片的显示
- 关于Android原生支持Gif动态图的问题
- Android显示GIF动态图的三种方式
- Android中GIF的实现
- gif动态图的获取
- Richedit插入动态Gif的实现
- 向Richedit插入动态Gif的实现
- Gif动态图片库--GifView的基本使用
- 面向对象编程的三大特征
- Android中shape的使用
- 2010-2014 --大学相关的经历
- 【Linux】vim中高频使用指令总结--->使vim用起来更加得心应手
- 程序员书单_云计算篇
- android实现gif动态图的使用
- hdu 5038 Grade(分级)
- 转载js入门须知
- xcode 7.0 错误提示 The resource could not be loaded because the App Transport Security policy requires
- 跨网段windows文件共享-路由器的转发规则配置
- HDU 1185 最大最小值【线段树(结构体)】
- 小记加密算法
- expect的用法
- 收藏一个SharedPreferences工具类