package com.wistron.WiViewer; import java.util.Date; import Utilities.CSStaticData; import android.R.integer; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.media.MediaMetadataRetriever; import android.media.ThumbnailUtils; import android.net.Uri; import android.os.AsyncTask; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.Gravity; import android.view.animation.AnimationUtils; import android.widget.SeekBar; import android.widget.Toast; /** * Asynchronous task for loading source screennail. */ public class LoadImageTask extends AsyncTask<Object, Integer, Bitmap[]> { String TAG="LoadImageTask"; /** * Callback for the completed asynchronous task. */ public interface Callback { void onComplete(long time,Bitmap[] mBitmaps); } private final Context context; private final Callback callback; WiImageView mImageView; long time; private boolean isCancled=false; public LoadImageTask(Context context, Callback callback,WiImageView mImageView) { this.context = context; this.callback = callback; this.mImageView=mImageView; isCancled=false; } /** * */ @Override protected Bitmap[] doInBackground(Object... params) { if (params[0] == null) { return null; } String filepath= (String) params[0]; if(CSStaticData.DEBUG) Log.e(TAG, "filepath"+filepath); long time1=new Date().getTime(); Bitmap[] mBitmaps= mImageView.getNextBitmapEx(filepath); long time2=new Date().getTime(); time=time2-time1; return mBitmaps; } @Override protected void onProgressUpdate(Integer... values) { // TODO Auto-generated method stub super.onProgressUpdate(values); } @Override protected void onCancelled() { // TODO Auto-generated method stub if(CSStaticData.DEBUG) Log.e(TAG, "onCancelled called"); isCancled=true; super.onCancelled(); } @Override protected void onPostExecute(Bitmap[] result) { String mString="load complete"; if (result == null) { mString="loading failure"; } if(CSStaticData.DEBUG) { Toast toast = Toast.makeText(context, mString, Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } if(!isCancled) callback.onComplete(time,result); } }