package com.jarlen.picturetest;
import java.io.File;
import com.js.photosdk.bodywarp.BodyWarp;
import com.js.photosdk.bodywarp.WarpView;
import com.js.photosdk.utils.FileUtils;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
public class WarpActivity extends Activity implements OnClickListener
{
private String TAG = WarpActivity.class.getSimpleName();
private boolean debug = true;
String pathName = Environment.getExternalStorageDirectory()
+ "/DCIM/Camera/test.jpg";
private WarpView image;
boolean mSaving; // Whether the "save" button is already clicked.
private BodyWarp warp = new BodyWarp();
private ImageButton cancelBtn, okBtn;
private String warpPicturePath;
Bitmap pictureBitmap,newBitmap;
private static final int scale = 2;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_warp);
initView();
initDate();
}
private void initView()
{
Intent warpIntent = getIntent();
warpPicturePath = warpIntent.getStringExtra("camera_path");
image = (WarpView) findViewById(R.id.warp_image);
cancelBtn = (ImageButton) findViewById(R.id.btn_cancel);
cancelBtn.setOnClickListener(this);
okBtn = (ImageButton) findViewById(R.id.btn_ok);
okBtn.setOnClickListener(this);
}
private void initDate()
{
pictureBitmap = BitmapFactory
.decodeFile(warpPicturePath);
newBitmap = pictureBitmap;
warp.initArray();
image.setWarpBitmap(newBitmap);
}
@Override
protected void onDestroy()
{
super.onDestroy();
if (debug)
Log.d(TAG, "onDestroy");
if (newBitmap != null)
{
newBitmap.recycle();
newBitmap = null;
System.gc();
}
}
@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 :
Bitmap bit = image.getWrapBitmap();
FileUtils.writeImage(bit, warpPicturePath, 100);
Intent okData = new Intent();
okData.putExtra("camera_path", warpPicturePath);
setResult(RESULT_OK, okData);
recycle();
this.finish();
break;
default :
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add(0, 1, 1, "重置");
// menu.add(0, 2, 2, "保存");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case 1 :
image.setWarpBitmap(pictureBitmap);
image.invalidate();
break;
// case 2:
//
// Bitmap bit = image.getWrapBitmap();
// FileUtils.writeImage(bit, warpPicturePath, 100);
//
// Intent okData = new Intent();
// okData.putExtra("camera_path", warpPicturePath);
// setResult(RESULT_OK, okData);
//
// recycle();
// this.finish();
default :
break;
}
return super.onOptionsItemSelected(item);
}
private void recycle()
{
if (newBitmap != null)
{
newBitmap.recycle();
newBitmap = null;
}
if(pictureBitmap != null)
{
pictureBitmap.recycle();
pictureBitmap = null;
}
}
}