package com.bestapp.yikuair.fragments;
import java.io.File;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import com.bestapp.yikuair.R;
import com.bestapp.yikuair.utils.BitmapCompressUtil;
import com.bestapp.yikuair.utils.ImageLoaderOriginal;
import com.bestapp.yikuair.utils.MessageInfo;
public class ImageActivity extends Activity {
private Dialog mDialog;
private ImageBroadcastReceiver ibr;
private static final String LOCATION_DIR = "/mnt/sdcard/yikuair/";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String path = null;
boolean isDownload = false;
ImageLoaderOriginal imageLoader = new ImageLoaderOriginal(this);;
if (getIntent().getExtras() != null) {
path = getIntent().getExtras().getString("imagePath");
isDownload = getIntent().getExtras()
.getBoolean("isDownload", false);
}
Log.e("test","image oncreate.................");
// register broadcast
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(MessageInfo.ImageBroadcast);
ibr = new ImageBroadcastReceiver();
registerReceiver(ibr, intentFilter);
if (path != null) {
if (!isDownload) {
setImageView(path);
} else {
String str[] = path.split("\\/");
if(str != null && str.length > 4){
File file = new File(LOCATION_DIR + str[3] + str[4]);
Log.i("test","image activity path :" + LOCATION_DIR + str[3] + str[4]);
if(file.exists())
setImageView(LOCATION_DIR + str[3] + str[4]);
else{
showWaitingProcessDialog();
imageLoader.loadImage(path, 0, null);
}
}
}
}
}
public void setImageView(String path){
ImageView imageView = new ImageView(this);
imageView.setScaleType(ScaleType.CENTER_INSIDE);
imageView.setImageBitmap(BitmapCompressUtil.rotateImageView(BitmapCompressUtil.readPictureDegree(path),BitmapFactory.decodeFile(path))/*BitmapCompressUtil
.compressImage(BitmapFactory.decodeFile(path))*/);
imageView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
/* if(ibr != null)
unregisterReceiver(ibr);
*/ finish();
}
});
setContentView(imageView);
getWindow().setBackgroundDrawableResource(android.R.color.black);
}
public void showWaitingProcessDialog() {
mDialog = new AlertDialog.Builder(this).create();
mDialog.show();
mDialog.setContentView(R.layout.loading_process_dialog);
}
@Override
protected void onDestroy() {
unregisterReceiver(ibr);
Log.e("test","image destroy");
super.onDestroy();
}
public class ImageBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("test", "receive image broadcast");
String action = intent.getAction();
String imgPath = null;
if(action.equals(MessageInfo.ImageBroadcast)) {
imgPath = intent.getStringExtra("imgPath");
}
setImageView(imgPath);
mDialog.dismiss();
}
}
}