Android拍照和裁剪

    xiaoxiao2023-03-28  6

    package com.bignerdranch.android.choosepictest; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Environment; import android.provider.MediaStore; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import java.io.File; public class MainActivity extends AppCompatActivity {     private ImageView picture;     private Uri imageUri;     public static final int TAKE_PHOTO=1;     public static final int CROP_PHOTO=2;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         picture = (ImageView) findViewById(R.id.picture);         Button take_photo = (Button) findViewById(R.id.take_photo);         //开始拍照         take_photo.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 //创建File对象,用于存储拍照之后的图片                 File outputImage=new File(Environment.getExternalStorageDirectory(),"output.jgp");                 try{                     //如果outputImage存在,则删除                     if(outputImage.exists()){                         outputImage.delete();                     }                     //如果不存在则创建                     outputImage.createNewFile();                 }catch (Exception e){                     e.printStackTrace();                 }                 imageUri = Uri.fromFile(outputImage);                 Intent intent=new Intent("android.media.action.IMAGE_CAPTURE");                 intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);                 startActivityForResult(intent,TAKE_PHOTO);             }         });     }     @Override     protected void onActivityResult(int requestCode, int resultCode, Intent data) {         switch (requestCode){             case TAKE_PHOTO:                 if(resultCode==RESULT_OK){                     Intent intent=new Intent("com.android.camera.action.CROP");                     //设置数据和属性                     intent.setDataAndType(imageUri,"image/*");                     intent.putExtra("scale", true);                     intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);                     startActivityForResult(intent,CROP_PHOTO);                 }                 break;             case CROP_PHOTO:                 if(resultCode==RESULT_OK){                     try{                         Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));                         picture.setImageBitmap(bitmap);                     }catch (Exception e){                         e.printStackTrace();                     }                 }                 break;             default:                 break;         }     } }
    转载请注明原文地址: https://ju.6miu.com/read-1209430.html
    最新回复(0)