/Research/Example projects/Android OGL/ModelRenderer/src/edu/union/android/ViewAnimator.java
https://bitbucket.org/DeveloperUX/behaviortree · Java · 51 lines · 43 code · 8 blank · 0 comment · 5 complexity · af3c308837860a611a3ace8327c664ba MD5 · raw file
- package edu.union.android;
- import android.os.Handler;
- import android.os.Message;
- import android.os.SystemClock;
- import android.view.View;
- public class ViewAnimator extends Handler {
- boolean running;
- View view;
- long nextTime;
- long step;
-
- public static final int NEXT = 0;
-
- public ViewAnimator(View view) {
- this(view, 30);
- }
-
- public ViewAnimator(View view, int fps) {
- this.running = false;
- this.view = view;
- this.step = 1000/fps;
- }
-
- public void start() {
- if (!running) {
- running = true;
- Message msg = obtainMessage(NEXT);
- sendMessageAtTime(msg, SystemClock.uptimeMillis());
- nextTime = SystemClock.uptimeMillis()+step;
- }
- }
-
- public void stop() {
- running = false;
- }
-
- public void handleMessage(Message msg) {
- if (running && msg.what == NEXT) {
- view.invalidate();
- msg = obtainMessage(NEXT);
- long current = SystemClock.uptimeMillis();
- if (nextTime < current) {
- nextTime = nextTime + step;
- }
- sendMessageAtTime(msg, nextTime);
- nextTime += step;
- }
- }
- }