package cn.edu.chd.yitu;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.TextView;
import cn.edu.chd.utils.BitmapUtils;
import cn.edu.chd.values.ApplicationValues;
/**
* @author Rowand jj
*������Ԥ������
*/
public class CanvasPreview extends Activity implements OnClickListener
{
/**
* ʹ��ʾ��Ϣ��ʧ����Ϣ����
*/
private static final int MSG_DISAPPER_TV = 1;
/**
* ��Ϣ�ӳ�ʱ��
*/
private static final int DELAY_TIME = 1500;
/**
* ͼƬ·��
*/
private String imagePath = "";
private TextView tv = null;
private ImageView iv = null;
private Bitmap bitmap = null;
private Intent to_intent = null;
private Handler handler = new Handler()
{
public void handleMessage(android.os.Message msg)
{
if(msg.what == MSG_DISAPPER_TV)
{
tv.startAnimation(AnimationUtils.loadAnimation(CanvasPreview.this,R.anim.alpha_1_to_0_slower));
tv.setVisibility(View.GONE);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_canvas_preview);
Intent intent = getIntent();
int reqWidth = getWindowManager().getDefaultDisplay().getWidth();
int reqHeight = getWindowManager().getDefaultDisplay().getHeight();
tv = (TextView) findViewById(R.id.tv_c_preview);
iv = (ImageView) findViewById(R.id.iv_c_preview);
to_intent = new Intent(this,DrawActivity.class);
Message msg = Message.obtain();
msg.what = MSG_DISAPPER_TV;
handler.sendMessageDelayed(msg, DELAY_TIME);
//��Ҫ��ȡ����
String type = intent.getStringExtra(ApplicationValues.Base.PREVIEW_TYPE);
if(ApplicationValues.Base.TYPE_CAMERA.equals(type))//�����������
{
cameraOperation(intent,reqWidth,reqHeight);
to_intent.putExtra(ApplicationValues.Base.PREVIEW_TYPE, ApplicationValues.Base.TYPE_CAMERA);
}else if(ApplicationValues.Base.TYPE_GALLERY.equals(type))//��������ͼ��
{
galleryOperation(intent,reqWidth,reqHeight);
to_intent.putExtra(ApplicationValues.Base.PREVIEW_TYPE, ApplicationValues.Base.TYPE_GALLERY);
}else if(ApplicationValues.Base.TYPE_MY_WORKS.equals(type))//�����ҵ���Ʒ
{
myWorkOperation(intent, reqWidth, reqHeight);
to_intent.putExtra(ApplicationValues.Base.PREVIEW_TYPE, ApplicationValues.Base.TYPE_MY_WORKS);
}else if(ApplicationValues.Base.TYPE_NORMAL_MODEL.equals(type))//�����
{
normalModelOperation(intent, reqWidth, reqHeight);
to_intent.putExtra(ApplicationValues.Base.PREVIEW_TYPE, ApplicationValues.Base.TYPE_NORMAL_MODEL);
to_intent.putExtra(TabNormalModel.COLOR, intent.getIntExtra(TabNormalModel.COLOR, 0));
}
//����ͼƬ����¼�
iv.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
if(v.getId() == R.id.iv_c_preview)
{
to_intent.putExtra(ApplicationValues.Base.IMAGE_STORE_PATH,imagePath);
startActivity(to_intent);
CanvasPreview.this.finish();
overridePendingTransition(R.anim.slide_remain, R.anim.out_left);
}
}
private void cameraOperation(Intent intent,int reqWidth,int reqHeight)
{
String image_path = intent.getStringExtra(TabDIY.IMAGE_DATA);
imagePath = image_path;
if(image_path == null)
return;
bitmap = BitmapUtils.decodeSampledBitmapFromFile(image_path, reqWidth, reqHeight);
iv.setImageBitmap(bitmap);
}
private void galleryOperation(Intent intent,int reqWidth,int reqHeight)
{
this.cameraOperation(intent, reqWidth, reqHeight);
}
private void myWorkOperation(Intent intent,int reqWidth,int reqHeight)
{
this.cameraOperation(intent, reqWidth, reqHeight);
}
private void normalModelOperation(Intent intent,int reqWidth,int reqHeight)
{
String image_path = intent.getStringExtra(TabDIY.IMAGE_DATA);
imagePath = image_path;
if(image_path == null)
return;
bitmap = BitmapUtils.decodeSampledBitmapFromResource(getResources(), Integer.parseInt(image_path), reqWidth, reqHeight);
iv.setImageBitmap(bitmap);
}
@Override
protected void onDestroy()
{
super.onDestroy();
if(bitmap != null)
{
bitmap.recycle();
bitmap = null;
}
}
}