package com.jarlen.picturetest;
import com.js.photosdk.crop.CropImageType;
import com.js.photosdk.crop.CropImageView;
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.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.Toast;
public class ImageCropActivity extends Activity implements OnClickListener
{
private CropImageView cropImage;
private String mPath = null;
private ImageButton cancleBtn, okBtn;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.crop_image);
Intent intent = getIntent();
mPath = intent.getStringExtra("camera_path");
Bitmap bit = BitmapFactory.decodeFile(mPath);
cropImage = (CropImageView) findViewById(R.id.cropmageView);
cancleBtn = (ImageButton) findViewById(R.id.btn_cancel);
cancleBtn.setOnClickListener(this);
okBtn = (ImageButton) findViewById(R.id.btn_ok);
okBtn.setOnClickListener(this);
Bitmap hh = BitmapFactory.decodeResource(this.getResources(),
R.drawable.crop_button);
cropImage.setCropOverlayCornerBitmap(hh);
cropImage.setImageBitmap(bit);
// Bitmap bit =
// BitmapFactory.decodeResource(this.getResources(),R.drawable.hi0);
cropImage.setGuidelines(CropImageType.CROPIMAGE_GRID_ON_TOUCH);// 触摸时显示网格
cropImage.setFixedAspectRatio(false);// 自由剪切
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add(0, 1, 1, "自由剪切");
menu.add(0, 2, 2, "1:1剪切");
menu.add(0, 3, 3, "3:2剪切");
menu.add(0, 4, 4, "4:3剪切");
menu.add(0, 5, 5, "16:9剪切");
menu.add(0, 6, 6, "旋转");
menu.add(0, 7, 7, "上下翻转");
menu.add(0, 8, 8, "左右翻转");
menu.add(0, 9, 9, "执行剪切");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case 1 :
cropImage.setFixedAspectRatio(false);
break;
case 2 :
cropImage.setFixedAspectRatio(true);
cropImage.setAspectRatio(10, 10);
break;
case 3 :
cropImage.setFixedAspectRatio(true);
cropImage.setAspectRatio(30, 20);
break;
case 4 :
cropImage.setFixedAspectRatio(true);
cropImage.setAspectRatio(40, 30);
break;
case 5 :
cropImage.setFixedAspectRatio(true);
cropImage.setAspectRatio(160, 90);
break;
case 6 :
cropImage.rotateImage(90);
break;
case 7 :
cropImage.reverseImage(CropImageType.REVERSE_TYPE.UP_DOWN);
break;
case 8 :
cropImage.reverseImage(CropImageType.REVERSE_TYPE.LEFT_RIGHT);
break;
case 9 :
Bitmap cropImageBitmap = cropImage.getCroppedImage();
Toast.makeText(
this,
"已保存到相册;剪切大小为 " + cropImageBitmap.getWidth() + " x "
+ cropImageBitmap.getHeight(),
Toast.LENGTH_SHORT).show();
FileUtils.saveBitmapToCamera(this, cropImageBitmap, "crop.jpg");
break;
default :
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View view)
{
switch (view.getId())
{
case R.id.btn_cancel :
Intent cancelData = new Intent();
setResult(RESULT_CANCELED, cancelData);
this.finish();
break;
case R.id.btn_ok :
Bitmap bit = cropImage.getCroppedImage();
FileUtils.writeImage(bit, mPath, 100);
Intent okData = new Intent();
okData.putExtra("camera_path", mPath);
setResult(RESULT_OK, okData);
this.finish();
break;
default :
break;
}
}
}