在布局中加入gif动图

来源:互联网 发布:数据恢复免费破解版 编辑:程序博客网 时间:2024/06/09 23:07

创建一个类MyGifView,java代码如下:

package com.example.gif;import android.content.Context;import android.graphics.Canvas;import android.graphics.Movie;import android.util.AttributeSet;import android.view.View;public class MyGifView extends View {private long movieStart;private Movie movie;// 重写该构造方法public MyGifView(Context context, AttributeSet attributeSet) {super(context, attributeSet);// 以文件流(InputStream)读取进gif图片资源movie = Movie.decodeStream(getResources().openRawResource(R.drawable.loading));}@Overrideprotected void onDraw(Canvas canvas) {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);}}

xml文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.gif.MainActivity" >    <com.example.gif.MyGifView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="20dp" /></RelativeLayout>


0 0
原创粉丝点击