Android, как сохранить захваченное изображение в галерее телефонов - PullRequest
4 голосов
/ 17 мая 2011

У меня есть два занятия.В одном упражнении у меня есть ImageView и кнопка камеры.Когда я нажимаю кнопку камеры, она переходит к другой деятельности, где есть две кнопки Capture и еще одна кнопка Select.Когда я нажимаю захват, он захватывает изображение.Но вопрос в том, как сохранить это изображение в галерее.А после нажатия кнопки «Выбрать» захваченное изображение должно отображаться на первом занятии ImageView.Как я могу это сделать.

Ответы [ 3 ]

4 голосов
/ 17 мая 2011
2 голосов
/ 23 января 2012

Я так и сделал.Изображение сохраняется на SDCard в минутах + секундах + .jpg:

final static private int NEW_PICTURE = 1;
private String mCameraFileName;


ImageButton Edit = (ImageButton) findViewById(R.id.internetbrowser4);

    Edit.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent();
            // Picture from camera
            intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);

            // This is not the right way to do this, but for some reason, having
            // it store it in
            // MediaStore.Images.Media.EXTERNAL_CONTENT_URI isn't working right.

            Date date = new Date();
            DateFormat df = new SimpleDateFormat("-mm-ss");

            String newPicFile = "Bild"+ df.format(date) + ".jpg";
            String outPath = "/sdcard/" + newPicFile;
            File outFile = new File(outPath);

            mCameraFileName = outFile.toString();
            Uri outuri = Uri.fromFile(outFile);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, outuri);


                startActivityForResult(intent, NEW_PICTURE);

        }
    });

  public void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
        if (requestCode == NEW_PICTURE) 
        {
            // return from file upload
            if (resultCode == Activity.RESULT_OK) 
            {
                Uri uri = null;
                if (data != null) 
                {
                    uri = data.getData();
                }
                if (uri == null && mCameraFileName != null) 
                {
                    uri = Uri.fromFile(new File(mCameraFileName));
                }
                File file = new File(mCameraFileName);
                if (!file.exists()) {
                    file.mkdir();
                }
            }
        }} 
}
1 голос
/ 17 мая 2011

попробуйте это ..

String path = Environment.getExternalStorageDirectory() + "/CameraImages/example.jpg";
                            File file = new File(path);
                            Uri outputFileUri = Uri.fromFile( file );
                            Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
                            intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );

                            startActivityForResult( intent, CAPTURE_IMAGE );

Ваше изображение будет сохранено в этом месте "sdcard / CameraImages / example.jpg"

...