安卓打开相册 拍照 并裁剪

 拍照并裁剪,,,回显
 */
public class MainActivity extends Activity {
    private ImageView img;
    private String path = Environment.getExternalStorageDirectory()
            + "/pics.jpg";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        img = (ImageView) findViewById(R.id.img);
    }

    public void paizhao(View view) {
        // 打开系统拍照页面
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        // 把拍完的照片,,存放到sd卡中
        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(path)));
        // 跳转
        startActivityForResult(intent, 999);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 999 && resultCode == RESULT_OK) {
            //可用去文件中去拿图片
            Uri uri = Uri.fromFile(new File(path));
            //img.setImageURI(uri);
            //裁剪
            crop(uri);
        }else if (requestCode == 1000 && resultCode == RESULT_OK) {
            Bitmap bitmap = data.getParcelableExtra("data");
            img.setImageBitmap(bitmap);
        }
    }

    private void crop(Uri uri) {
        Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(uri, "image/*");
        intent.putExtra("crop", true);
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        intent.putExtra("outputX", 300);
        intent.putExtra("outputY", 300);
        intent.putExtra("noFaceDetection", false);
        intent.putExtra("return-data", true);
        startActivityForResult(intent, 1000);
        
        
        
    }

}
 

 打开相册,并裁剪,,回显
 * 
 */
public class MainActivity extends Activity {

    private ImageView img;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        img = (ImageView) findViewById(R.id.img);
    }

    public void xiangce(View view) {
        // 打开相册
        Intent intent = new Intent(Intent.ACTION_PICK);
        // 设置图片的类型
        intent.setType("image/*");
        // 打开相册页面、
        startActivityForResult(intent, 999);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 999 && resultCode == RESULT_OK) {
            //相册对应的回显数据
            Uri uri = data.getData();
            //裁剪
            crop(uri);
        }else if (requestCode == 1000 && resultCode == RESULT_OK) {
            //取出数据
            Bitmap bitmap = data.getParcelableExtra("data");
            img.setImageBitmap(bitmap);
        }
    }

    private void crop(Uri uri) {
        //通过隐式跳转,,,打开裁剪页面
        Intent intent = new Intent("com.android.camera.action.CROP");
        //通过意图对象进行设置
        //设置裁剪图片的类型
        intent.setDataAndType(uri, "image/*");
        //是否允许裁剪
        intent.putExtra("crop", true);
        //裁剪框的比例
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        //输出图片的大小
        intent.putExtra("outputX", 300);
        intent.putExtra("outputY", 300);
        //取消人脸识别
        intent.putExtra("noFaceDetection", false);
        //允许返回数据
        intent.putExtra("return-data", true);
        //回显数据
        startActivityForResult(intent, 1000);
        
    }

猜你喜欢

转载自blog.csdn.net/Mazzze/article/details/82630768