package com.example.imagedemo001;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
/**
*
* 功能:调用Android系统的的照相功能,获取图片信息 <br />
* 日期:2012-12-26<br />
* 版本:ver 1.0<br />
*
* @author fighter
* @since
*/
public class Main extends Activity {
/** 调用系统相机 */
private final int TAKE_PICTURE = 1001;
/* 将图片切割 */
private final int FORMAT_PICTURE = 1003;
private Button btnTake;
private ImageView imgView;
private OnClickListener btnClickListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.initWidget();
this.initParam();
this.initBtnListener();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (TAKE_PICTURE == requestCode && RESULT_OK == resultCode
&& null != data) {
Bitmap bitmap = data.getParcelableExtra("data");
if(null != bitmap){
doCorpImage(bitmap);
}
}else if(FORMAT_PICTURE == requestCode && RESULT_OK == resultCode
&& null != data){
Bitmap bitmap = data.getParcelableExtra("data");
if(null != bitmap){
this.imgView.setImageBitmap(bitmap);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
private void initWidget() {
this.btnTake = (Button) findViewById(R.id.btnTake);
this.imgView = (ImageView) findViewById(R.id.imgView);
}
private void initParam() {
this.btnClickListener = new BtnOnClickLisenerImpl();
}
private void initBtnListener() {
this.btnTake.setOnClickListener(btnClickListener);
}
private void doCorpImage(Bitmap bm){
Intent intent = getCropImageIntent(bm);
startActivityForResult(intent, FORMAT_PICTURE);
}
/*
* 格式后的参数...
* */
private Intent getCropImageIntent(Bitmap bm) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setType("image/*");
intent.putExtra("data", bm);
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 128);
intent.putExtra("outputY", 128);
intent.putExtra("return-data", true);
return intent;
}
class BtnOnClickLisenerImpl implements OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnTake:
takePicture((Button) v);
break;
default:
break;
}
}
private void takePicture(Button btn) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE);
}
}
}