package com.android.gallery3d.util; import com.android.gallery3d.R; import android.app.Activity; import android.content.res.Configuration; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.DisplayMetrics; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; import android.widget.LinearLayout; public class ViewGifImage extends Activity { private static final String TAG = "ViewGifImage"; public static final String VIEW_GIF_ACTION = "com.android.gallery3d.VIEW_GIF"; public static DisplayMetrics mDM; private ImageView mGifView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.view_gif_image); mDM = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(mDM); if (getIntent().getAction() != null && getIntent().getAction().equals(VIEW_GIF_ACTION)) { Uri gifUri = getIntent().getData(); showGifPicture(gifUri); } } @Override protected void onStop() { super.onStop(); finish(); } @Override protected void onDestroy() { if (mGifView != null && mGifView instanceof GIFView) { ((GIFView) mGifView).freeMemory(); mGifView = null; } super.onDestroy(); } private void showGifPicture(Uri uri) { mGifView = new GIFView(this); ((LinearLayout) findViewById(R.id.image_absoluteLayout)).addView(mGifView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); if (((GIFView) mGifView).setDrawable(uri)) return; finish(); } @Override public void onConfigurationChanged(Configuration newConfig) { getWindowManager().getDefaultDisplay().getMetrics(mDM); super.onConfigurationChanged(newConfig); } }