package com.jarlen.picturetest; import com.js.photosdk.utils.FileUtils; import com.js.photosdk.utils.PhotoUtils; import android.app.Activity; 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; public class RevolveActivity extends Activity implements OnClickListener { private ImageView pictureShow; private Button revoleTest, unTest, fanTestUpDown, fanTestLeftRight; private String camera_path; private Bitmap srcBitmap, bit; private ImageButton cancelBtn, okBtn; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.layout_revolve); initView(); Intent intent = getIntent(); camera_path = intent.getStringExtra("camera_path"); srcBitmap = BitmapFactory.decodeFile(camera_path); bit = srcBitmap; pictureShow.setImageBitmap(srcBitmap); } private void initView() { cancelBtn = (ImageButton) findViewById(R.id.btn_cancel); cancelBtn.setOnClickListener(this); okBtn = (ImageButton) findViewById(R.id.btn_ok); okBtn.setOnClickListener(this); pictureShow = (ImageView) findViewById(R.id.picture); revoleTest = (Button) findViewById(R.id.revoleTest); revoleTest.setOnClickListener(this); unTest = (Button) findViewById(R.id.unTest); unTest.setOnClickListener(this); fanTestUpDown = (Button) findViewById(R.id.fanTestUpDown); fanTestUpDown.setOnClickListener(this); fanTestLeftRight = (Button) findViewById(R.id.fanTestLeftRight); fanTestLeftRight.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn_cancel : Intent cancelData = new Intent(); setResult(RESULT_CANCELED, cancelData); recycle(); this.finish(); break; case R.id.btn_ok : FileUtils.writeImage(bit, camera_path, 100); Intent intent = new Intent(); intent.putExtra("camera_path", camera_path); setResult(Activity.RESULT_OK, intent); recycle(); this.finish(); break; case R.id.revoleTest : bit = PhotoUtils.rotateImage(bit, 90); pictureShow.setImageBitmap(bit); break; case R.id.fanTestLeftRight : bit = PhotoUtils.reverseImage(bit, -1, 1); pictureShow.setImageBitmap(bit); break; case R.id.fanTestUpDown : bit = PhotoUtils.reverseImage(bit, 1, -1); pictureShow.setImageBitmap(bit); break; case R.id.unTest : bit = srcBitmap; pictureShow.setImageBitmap(bit); break; default : break; } } private void recycle() { if (srcBitmap != null) { srcBitmap.recycle(); srcBitmap = null; } if (bit != null) { bit.recycle(); bit = null; } } }