package com.kaixin.android.activity; import java.util.HashMap; import java.util.Map; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import com.kaixin.android.KXActivity; import com.kaixin.android.R; import com.kaixin.android.utils.ActivityForResultUtil; /** * 图片编辑类 * * @author gyz * */ public class ImageFilterActivity extends KXActivity { private Button mCancel; private Button mFinish; private ImageButton mBack; private ImageButton mForward; private ImageView mDisplay; private Button mCut; private Button mEffect; private Button mFace; private Button mFrame; private String mOldPath;// 旧图片地址 private Bitmap mOldBitmap;// 旧图片 private String mNewPath;// 新图片地址 private Bitmap mNewBitmap;// 新图片 private boolean mIsOld = true;// 是否是选择了旧图片 private boolean mIsSetResult = false;// 是否是要返回数据 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.imagefilter_activity); findViewById(); setListener(); init(); } private void findViewById() { mCancel = (Button) findViewById(R.id.imagefilter_cancel); mFinish = (Button) findViewById(R.id.imagefilter_finish); mBack = (ImageButton) findViewById(R.id.imagefilter_back); mForward = (ImageButton) findViewById(R.id.imagefilter_forward); mDisplay = (ImageView) findViewById(R.id.imagefilter_display); mCut = (Button) findViewById(R.id.imagefilter_cut); mEffect = (Button) findViewById(R.id.imagefilter_effect); mFace = (Button) findViewById(R.id.imagefilter_face); mFrame = (Button) findViewById(R.id.imagefilter_frame); } private void setListener() { mCancel.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 关闭当前界面 finish(); } }); mFinish.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 判断是否要返回数据 if (mIsSetResult) { // 根据是否选择旧图片返回图片地址 Intent intent = new Intent(); if (mIsOld) { intent.putExtra("path", mOldPath); } else { intent.putExtra("path", mNewPath); } setResult(RESULT_OK, intent); } else { // 根据是否选择旧图片添加一个新的图片并跳转到上传图片界面 Map<String, String> map = new HashMap<String, String>(); if (mIsOld) { map.put("image_path", mOldPath); } else { map.put("image_path", mNewPath); } mKXApplication.mAlbumList.add(map); startActivity(new Intent(ImageFilterActivity.this, PhotoShareActivity.class)); } finish(); } }); mBack.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 选择旧图片 mIsOld = true; mBack.setImageResource(R.drawable.image_action_back_arrow_normal); mForward.setImageResource(R.drawable.image_filter_action_forward_arrow); mBack.setEnabled(false); mForward.setEnabled(true); mDisplay.setImageBitmap(mOldBitmap); } }); mForward.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 选择新图片 mIsOld = false; mBack.setImageResource(R.drawable.image_filter_action_back_arrow); mForward.setImageResource(R.drawable.image_action_forward_arrow_normal); mBack.setEnabled(true); mForward.setEnabled(false); mDisplay.setImageBitmap(mNewBitmap); } }); mCut.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 跳转到裁剪界面,并传递图片地址 Intent intent = new Intent(); intent.setClass(ImageFilterActivity.this, ImageFilterCropActivity.class); if (mIsOld) { intent.putExtra("path", mOldPath); } else { intent.putExtra("path", mNewPath); } startActivityForResult(intent, ActivityForResultUtil.REQUESTCODE_IMAGEFILTER_CROP); } }); mEffect.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 跳转到特效界面,并传递图片地址 Intent intent = new Intent(); intent.setClass(ImageFilterActivity.this, ImageFilterEffectActivity.class); if (mIsOld) { intent.putExtra("path", mOldPath); } else { intent.putExtra("path", mNewPath); } startActivityForResult(intent, ActivityForResultUtil.REQUESTCODE_IMAGEFILTER_EFFECT); } }); mFace.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 跳转到表情界面,并传递图片地址 Intent intent = new Intent(); intent.setClass(ImageFilterActivity.this, ImageFilterFaceActivity.class); if (mIsOld) { intent.putExtra("path", mOldPath); } else { intent.putExtra("path", mNewPath); } startActivityForResult(intent, ActivityForResultUtil.REQUESTCODE_IMAGEFILTER_FACE); } }); mFrame.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 跳转到边框界面,并传递图片地址 Intent intent = new Intent(); intent.setClass(ImageFilterActivity.this, ImageFilterFrameActivity.class); if (mIsOld) { intent.putExtra("path", mOldPath); } else { intent.putExtra("path", mNewPath); } startActivityForResult(intent, ActivityForResultUtil.REQUESTCODE_IMAGEFILTER_FRAME); } }); } private void init() { // 初始化界面按钮设为不可用 mBack.setImageResource(R.drawable.image_action_back_arrow_normal); mForward.setImageResource(R.drawable.image_action_forward_arrow_normal); mBack.setEnabled(false); mForward.setEnabled(false); // 获取是否返回数据 mIsSetResult = getIntent().getBooleanExtra("isSetResult", false); // 接收传递的图片地址 mOldPath = getIntent().getStringExtra("path"); mNewPath = getIntent().getStringExtra("path"); mOldBitmap = mKXApplication.getPhoneAlbum(mOldPath); mNewBitmap = mKXApplication.getPhoneAlbum(mNewPath); // 显示图片 mDisplay.setImageBitmap(mOldBitmap); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { // 接收修改后的图片地址,并更新 if (mIsOld) { mNewPath = data.getStringExtra("path"); mNewBitmap = mKXApplication.getPhoneAlbum(mNewPath); } else { mOldPath = mNewPath; mOldBitmap = mNewBitmap; mNewPath = data.getStringExtra("path"); mNewBitmap = mKXApplication.getPhoneAlbum(mNewPath); } mIsOld = false; mBack.setImageResource(R.drawable.image_filter_action_back_arrow); mForward.setImageResource(R.drawable.image_action_forward_arrow_normal); mBack.setEnabled(true); mForward.setEnabled(false); mDisplay.setImageBitmap(mNewBitmap); } } }