Android基础篇之显示GIF格式图片
2013-06-03 14:24
525 查看
2011-05-25 23:20:17
大家都知道,如果我们在Android中用ImageView直接显示GIF的图片,图片只会停在第一帧上,而不会继续。这时看到的只是一张静态的图片,没有GIF的效果。我们可以用Movie来显示图片 这个方法较简单;
1.在main.xml中添加ImageView,指定一张GIF图片为背景;
2.MainActivity.java
[java] view
plaincopy
package com.yin.displayGIF;
import android.app.Activity;
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 {
private MyCustomView mView;
private Movie mMovie;
private long mMovieStart;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mView = new MyCustomView(this);
setContentView(mView);
}
//自定义一个类,继承View
class MyCustomView extends View{
public MyCustomView(Context context) {
super(context);
//以文件流的方式读取文件
mMovie = Movie.decodeStream(
getResources().openRawResource(R.drawable.my_picture));
}
@Override
protected void onDraw(Canvas canvas) {
long curTime = android.os.SystemClock.uptimeMillis();
//第一次播放
if(mMovieStart == 0){
mMovieStart = curTime;
}
if(mMovie != null){
int duration = mMovie.duration();
int relTime = (int)((curTime - mMovieStart)% duration);
mMovie.setTime(relTime);
mMovie.draw(canvas, 0, 0);
//强制重绘
invalidate();
}
super.onDraw(canvas);
}
}
}
大家都知道,如果我们在Android中用ImageView直接显示GIF的图片,图片只会停在第一帧上,而不会继续。这时看到的只是一张静态的图片,没有GIF的效果。我们可以用Movie来显示图片 这个方法较简单;
1.在main.xml中添加ImageView,指定一张GIF图片为背景;
2.MainActivity.java
[java] view
plaincopy
package com.yin.displayGIF;
import android.app.Activity;
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 {
private MyCustomView mView;
private Movie mMovie;
private long mMovieStart;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mView = new MyCustomView(this);
setContentView(mView);
}
//自定义一个类,继承View
class MyCustomView extends View{
public MyCustomView(Context context) {
super(context);
//以文件流的方式读取文件
mMovie = Movie.decodeStream(
getResources().openRawResource(R.drawable.my_picture));
}
@Override
protected void onDraw(Canvas canvas) {
long curTime = android.os.SystemClock.uptimeMillis();
//第一次播放
if(mMovieStart == 0){
mMovieStart = curTime;
}
if(mMovie != null){
int duration = mMovie.duration();
int relTime = (int)((curTime - mMovieStart)% duration);
mMovie.setTime(relTime);
mMovie.draw(canvas, 0, 0);
//强制重绘
invalidate();
}
super.onDraw(canvas);
}
}
}
相关文章推荐
- Android基础篇之显示GIF格式图片
- 如何让你的 Android 显示gif格式的图片
- android 显示gif格式的图片
- Android显示gif格式图片
- 如何让你的Android显示gif格式的图片
- Android显示gif格式图片
- Android显示gif格式图片
- android中自定义view显示gif格式图片
- qml中图片格式和后缀不一致时导致图片不显示的问题(ios and android)
- Android 2.3 Gallery3D添加gif支持——图片显示(二)
- Android中轻松显示Gif图片
- android的TextView使用Html(图片显示)格式。。。。。。
- Android三步显示gif动态图片
- Android中显示gif图片
- Android中轻松显示Gif图片
- 自定义View来显示gif格式图片
- Android中轻松显示Gif图片
- C++中使用CAtlHttpClient显示网络图片的方法,支持png,bmp,gif图片格式
- Android gif图片显示
- 我的VC++——对话框中显示GIF格式的图片