Files
frameworks_base/services/java/com/android/server/status/AnimatedImageView.java
The Android Open Source Project 9066cfe988 auto import from //depot/cupcake/@135843
2009-03-03 19:31:44 -08:00

70 lines
1.6 KiB
Java

package com.android.server.status;
import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
import android.widget.RemoteViews.RemoteView;
@RemoteView
public class AnimatedImageView extends ImageView {
AnimationDrawable mAnim;
boolean mAttached;
public AnimatedImageView(Context context) {
super(context);
}
public AnimatedImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
private void updateAnim() {
Drawable drawable = getDrawable();
if (mAttached && mAnim != null) {
mAnim.stop();
}
if (drawable instanceof AnimationDrawable) {
mAnim = (AnimationDrawable)drawable;
if (mAttached) {
mAnim.start();
}
} else {
mAnim = null;
}
}
@Override
public void setImageDrawable(Drawable drawable) {
super.setImageDrawable(drawable);
updateAnim();
}
@Override
@android.view.RemotableViewMethod
public void setImageResource(int resid) {
super.setImageResource(resid);
updateAnim();
}
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
if (mAnim != null) {
mAnim.start();
}
mAttached = true;
}
@Override
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
if (mAnim != null) {
mAnim.stop();
}
mAttached = false;
}
}