попробуйте это, у меня это сработало .. Я использую действие, запущенное по щелчку appWidge, но оно должно работать и для вашей конфигурации)
final class GIFView extends View {
Movie movie, movie1;
InputStream is = null, is1 = null;
long moviestart;
public GIFView(Context context) {
super(context);
is = context.getResources().openRawResource(R.drawable.youranimatedgif);
movie = Movie.decodeStream(is);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
try{
long now = android.os.SystemClock.uptimeMillis();
if (moviestart == 0) { // first time
moviestart = now;
}
int relTime = (int) ((now - moviestart) % movie.duration());
System.out.println("time=" + relTime + "\treltime=" + movie.duration());
movie.setTime(relTime);
//this will draw on the top left corner of your display
movie.draw(canvas, 0,0);
this.invalidate();
}
catch (Exception e) {
//make you stuff here
}
}
}
public class YuorActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try{
setContentView(new GIFView(this));
new InitTask().execute(this);
}
catch (Exception e) {
//do your stuff here
}
}
}
надеюсь, что это поможет ...