package com.jarlen.picturetest; import com.js.photosdk.enhance.PhotoEnhance; import com.js.photosdk.utils.FileUtils; 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.ImageButton; import android.widget.ImageView; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; public class EnhanceActivity extends Activity implements OnSeekBarChangeListener, OnClickListener { private ImageButton cancelBtn, okBtn; private ImageView pictureShow; private SeekBar saturationSeekBar, brightnessSeekBar, contrastSeekBar; private String imgPath; private Bitmap bitmapSrc; private PhotoEnhance pe; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_enhance); Intent intent = getIntent(); imgPath = intent.getStringExtra("camera_path"); bitmapSrc = BitmapFactory.decodeFile(imgPath); initView(); pictureShow.setImageBitmap(bitmapSrc); } 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.enhancePicture); saturationSeekBar = (SeekBar) findViewById(R.id.saturation); saturationSeekBar.setMax(255); saturationSeekBar.setProgress(128); saturationSeekBar.setOnSeekBarChangeListener(this); brightnessSeekBar = (SeekBar) findViewById(R.id.brightness); brightnessSeekBar.setMax(255); brightnessSeekBar.setProgress(128); brightnessSeekBar.setOnSeekBarChangeListener(this); contrastSeekBar = (SeekBar) findViewById(R.id.contrast); contrastSeekBar.setMax(255); contrastSeekBar.setProgress(128); contrastSeekBar.setOnSeekBarChangeListener(this); pe = new PhotoEnhance(bitmapSrc); } private int pregress = 0; private Bitmap bit = null; @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { pregress = progress; } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub int type = 0; switch (seekBar.getId()) { case R.id.saturation : pe.setSaturation(pregress); type = pe.Enhance_Saturation; break; case R.id.brightness : pe.setBrightness(pregress); type = pe.Enhance_Brightness; break; case R.id.contrast : pe.setContrast(pregress); type = pe.Enhance_Contrast; break; default : break; } bit = pe.handleImage(type); pictureShow.setImageBitmap(bit); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn_ok : FileUtils.writeImage(bit, imgPath, 100); Intent okData = new Intent(); okData.putExtra("camera_path", imgPath); setResult(RESULT_OK, okData); recycle(); this.finish(); break; case R.id.btn_cancel : Intent cancelData = new Intent(); setResult(RESULT_CANCELED, cancelData); recycle(); this.finish(); break; default : break; } } private void recycle() { if (bitmapSrc != null) { bitmapSrc.recycle(); bitmapSrc = null; } if (bit != null) { bit.recycle(); bit = null; } } }