How do I save data from Camera to disk using MediaStore on Android?

后端 未结 5 1221
予麋鹿
予麋鹿 2020-11-30 03:43

For my application, I\'d been using my own Camera class for taking images and my own database but soon enough I couldn\'t really keep up with changes and I decided to use th

5条回答
  •  自闭症患者
    2020-11-30 04:08

    This worked with the following code, granted I was being a little dumb with the last one. I still think there's got to be a better way so that the original image is still saved somewhere. It still sends me the smaller 25% size image.

    public class CameraTest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button cameraButton = (Button) findViewById(R.id.cameraButton);
        cameraButton.setOnClickListener( new OnClickListener(){
            public void onClick(View v ){
    
                Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    
                startActivityForResult(intent,0);
            }
        });
    
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode== 0 && resultCode == Activity.RESULT_OK) {
            Bitmap x = (Bitmap) data.getExtras().get("data");
            ((ImageView)findViewById(R.id.pictureView)).setImageBitmap(x);
            ContentValues values = new ContentValues();
            values.put(Images.Media.TITLE, "title");
            values.put(Images.Media.BUCKET_ID, "test");
            values.put(Images.Media.DESCRIPTION, "test Image taken");
            values.put(Images.Media.MIME_TYPE, "image/jpeg");
            Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
            OutputStream outstream;
            try {
                outstream = getContentResolver().openOutputStream(uri);
                x.compress(Bitmap.CompressFormat.JPEG, 70, outstream);
                outstream.close();
            } catch (FileNotFoundException e) {
                //
            } catch (IOException e) {
                //
            }
        }
    }
    

    Also, I do know that the cupcake release of Android should fix the small image size soon.

提交回复
热议问题