| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package com.easymorse.dialog;
- import android.app.Activity;
- import android.app.Dialog;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.graphics.Movie;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- public class MainActivity extends Activity {
-
- private Movie mMovie;
- private long mMovieStart;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // setContentView(R.layout.main);
- setContentView(new CustomGifView(this));
- // Dialog customDialog = new Dialog(this);
- // customDialog.setTitle("test");
- // customDialog.setContentView(new CustomGifView(this));
- // customDialog.show();
- }
- class CustomGifView extends View {
- public CustomGifView(Context context) {
- super(context);
- mMovie = Movie.decodeStream(getResources().openRawResource(
- R.drawable.animation));
- }
-
- public void onDraw(Canvas canvas) {
- long now = android.os.SystemClock.uptimeMillis();
-
- if (mMovieStart == 0) { // first time
- 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();
- }
- }
- }
- }
|