package com.kaixin.android.activity; import java.io.IOException; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; 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.PhotoUtil; /** * 图片边框类 * * @author gyz * */ public class ImageFilterFrameActivity extends KXActivity { private Button mCancel; private Button mDetermine; private ImageView mDisplay; private ImageButton mFrame_1; private ImageButton mFrame_2; private ImageButton mFrame_3; private ImageButton mFrame_4; private ImageButton mFrame_5; private ImageButton mFrame_6; private ImageButton mFrame_7; private ImageButton mFrame_8; private ImageButton mFrame_9; private ImageButton mFrame_10; private String mPath;// 图片地址 private Bitmap mOldBitmap;// 旧图片 private Bitmap mNewBitmap;// 新图片 private int mFrameId = 0;// 边框编号 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.imagefilter_frame_activity); findViewById(); setListener(); init(); } private void findViewById() { mCancel = (Button) findViewById(R.id.imagefilter_frame_cancel); mDetermine = (Button) findViewById(R.id.imagefilter_frame_determine); mDisplay = (ImageView) findViewById(R.id.imagefilter_frame_display); mFrame_1 = (ImageButton) findViewById(R.id.imagefilter_frame_frame1); mFrame_2 = (ImageButton) findViewById(R.id.imagefilter_frame_frame2); mFrame_3 = (ImageButton) findViewById(R.id.imagefilter_frame_frame3); mFrame_4 = (ImageButton) findViewById(R.id.imagefilter_frame_frame4); mFrame_5 = (ImageButton) findViewById(R.id.imagefilter_frame_frame5); mFrame_6 = (ImageButton) findViewById(R.id.imagefilter_frame_frame6); mFrame_7 = (ImageButton) findViewById(R.id.imagefilter_frame_frame7); mFrame_8 = (ImageButton) findViewById(R.id.imagefilter_frame_frame8); mFrame_9 = (ImageButton) findViewById(R.id.imagefilter_frame_frame9); mFrame_10 = (ImageButton) findViewById(R.id.imagefilter_frame_frame10); } private void setListener() { mCancel.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 返回对话框 backDialog(); } }); mDetermine.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 如果id为0,代表没做任何操作,则无需返回值,否则则保存当前修改的图片并返回地址 if (mFrameId == 0) { setResult(RESULT_CANCELED); finish(); } else { mPath = PhotoUtil.saveToLocal(mNewBitmap); Intent intent = new Intent(); intent.putExtra("path", mPath); setResult(RESULT_OK, intent); finish(); } } }); mFrame_1.setOnClickListener(new OnClickListener() { public void onClick(View v) { mFrameId = 1; mNewBitmap = PhotoUtil.combinateFrame( ImageFilterFrameActivity.this, mOldBitmap, "frame1"); mDisplay.setImageBitmap(mNewBitmap); } }); mFrame_2.setOnClickListener(new OnClickListener() { public void onClick(View v) { mFrameId = 2; mNewBitmap = PhotoUtil.combinateFrame( ImageFilterFrameActivity.this, mOldBitmap, "frame2"); mDisplay.setImageBitmap(mNewBitmap); } }); mFrame_3.setOnClickListener(new OnClickListener() { public void onClick(View v) { mFrameId = 3; mNewBitmap = PhotoUtil.combinateFrame( ImageFilterFrameActivity.this, mOldBitmap, "frame3"); mDisplay.setImageBitmap(mNewBitmap); } }); mFrame_4.setOnClickListener(new OnClickListener() { public void onClick(View v) { mFrameId = 4; mNewBitmap = PhotoUtil.combinateFrame( ImageFilterFrameActivity.this, mOldBitmap, "frame4"); mDisplay.setImageBitmap(mNewBitmap); } }); mFrame_5.setOnClickListener(new OnClickListener() { public void onClick(View v) { mFrameId = 5; try { mNewBitmap = PhotoUtil.addBigFrame( mOldBitmap, BitmapFactory.decodeStream(getAssets().open( "frames/frame5/mist.png"))); mDisplay.setImageBitmap(mNewBitmap); } catch (IOException e) { e.printStackTrace(); } } }); mFrame_6.setOnClickListener(new OnClickListener() { public void onClick(View v) { mFrameId = 6; try { mNewBitmap = PhotoUtil.addBigFrame( mOldBitmap, BitmapFactory.decodeStream(getAssets().open( "frames/frame6/love.png"))); mDisplay.setImageBitmap(mNewBitmap); } catch (IOException e) { e.printStackTrace(); } } }); mFrame_7.setOnClickListener(new OnClickListener() { public void onClick(View v) { mFrameId = 7; mNewBitmap = PhotoUtil.combinateFrame( ImageFilterFrameActivity.this, mOldBitmap, "frame7"); mDisplay.setImageBitmap(mNewBitmap); } }); mFrame_8.setOnClickListener(new OnClickListener() { public void onClick(View v) { mFrameId = 8; try { mNewBitmap = PhotoUtil.addBigFrame( mOldBitmap, BitmapFactory.decodeStream(getAssets().open( "frames/frame8/transparent.png"))); mDisplay.setImageBitmap(mNewBitmap); } catch (IOException e) { e.printStackTrace(); } } }); mFrame_9.setOnClickListener(new OnClickListener() { public void onClick(View v) { mFrameId = 9; try { mNewBitmap = PhotoUtil.addBigFrame( mOldBitmap, BitmapFactory.decodeStream(getAssets().open( "frames/frame9/black.png"))); mDisplay.setImageBitmap(mNewBitmap); } catch (IOException e) { e.printStackTrace(); } } }); mFrame_10.setOnClickListener(new OnClickListener() { public void onClick(View v) { mFrameId = 10; mNewBitmap = PhotoUtil.combinateFrame( ImageFilterFrameActivity.this, mOldBitmap, "frame10"); mDisplay.setImageBitmap(mNewBitmap); } }); } private void init() { // 获取图片地址 mPath = getIntent().getStringExtra("path"); // 获取图片 mOldBitmap = mKXApplication.getPhoneAlbum(mPath); // 显示图片 mDisplay.setImageBitmap(mOldBitmap); } /** * 返回对话框 */ private void backDialog() { AlertDialog.Builder builder = new Builder(ImageFilterFrameActivity.this); builder.setTitle("OOXX"); builder.setIcon(android.R.drawable.ic_dialog_alert); builder.setMessage("你确定要取消编辑吗?"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); setResult(RESULT_CANCELED); finish(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.create().show(); } public void onBackPressed() { // 返回对话框 backDialog(); } }