安卓拍照并裁剪

来源:互联网 发布:java输出平行四边形 编辑:程序博客网 时间:2024/05/21 21:48
import java.io.File;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Parcelable;
import android.provider.MediaStore;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends Activity {
    
    File f;
    private ImageView img;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        img=(ImageView)findViewById(R.id.img);
        f=new File(Environment.getExternalStorageDirectory(), "head.jpg");
    }
    
    public void pai(View v){
        //拍照
        Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));  //把拍摄的图片保存成f对象到sd卡
        
        startActivityForResult(intent, 1000);  //跳转Activity 参数
        
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        
        if(requestCode==1000&&resultCode==RESULT_OK){
            //调用裁剪的程序,裁剪拍摄的head.jpg
            crop();
        }else if(requestCode==2000&&resultCode==RESULT_OK){
            Bitmap map = data.getParcelableExtra("data");
            img.setImageBitmap(map);
//            Uri uri = data.getData();
        }
    }
    
    //裁剪操作
    public void crop(){
        //进行裁剪
        Intent intent=new Intent("com.android.camera.action.CROP");  //裁剪程序的地址
        
        //设置裁剪的数据(uri路径)....裁剪的类型(image/*)
        intent.setDataAndType(Uri.fromFile(f), "image/*");
       
        //执行裁剪的指令
        intent.putExtra("crop", "true");
        
        
        //指定裁剪框的宽高比
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
       
        //指定输出的时候宽度和高度
        intent.putExtra("outputX", 200);
        intent.putExtra("outputY", 200);
       
        //设置取消人脸识别
        intent.putExtra("noFaceDetection", false);
        //设置返回数据
        intent.putExtra("return-data", true);
        //
        startActivityForResult(intent, 2000);
    }
    
    

    

}
原创粉丝点击