获取最后拍摄的图像?

时间:2016-02-11 12:10:29

标签: android camera imageview

我有一个应用程序,您可以在其中拍摄自己的照片(应用程序将图像保存在指定的文件夹中,名为" MyAppImage"),我想在第二个活动中显示拍摄的图像一个代码,怎么做?我想在我的SecondActivity中的imageView中显示它,但我需要一个代码,可以从这个文件夹中获取最后捕获的相机图像,有没有办法做到这一点?

希望有人可以指导我,如何做到这一点,谢谢!

2 个答案:

答案 0 :(得分:1)

拍摄照片后,将其保存到文件中。 然后调用intent开始第二个活动,并将putExtraString与您的图像文件路径一起使用。 就是这样。

答案 1 :(得分:1)

拍照后:

MainActivity

 String filePath;
    @Override
        protected void onCreate(Bundle savedInstanceState) {   
        ...
        }

    private void onCaptureImageResult(Intent data) {
            Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
            ByteArrayOutputStream bytes = new ByteArrayOutputStream();
            thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);

      String fileName = "yourPhotoName" + ".jpg"

      filePath =  "pathOfMyAppImageFolder" + fileName;

      File destination = new File(filePath);

    FileOutputStream fo;
          try {
           destination.createNewFile();
           fo = new FileOutputStream(destination);
           fo.write(bytes.toByteArray());
           fo.close();
          } catch (FileNotFoundException e) {
           e.printStackTrace();
          } catch (IOException e) {
           e.printStackTrace();
         }
      }

      yourButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), AnotherActivity.class);
                intent.putExtra("filePath", filePath)
                startActivity(intent);

                }
            });

AnotherActivity

String filePath;
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

    Intent intent = this.getIntent();

    filePath = intent.getStringExtra("filePath");

    File imgFile = new  File(filePath);

    if(imgFile.exists()){

        Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

        ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);

        myImage.setImageBitmap(myBitmap);

        }
     }

拍摄文件夹的最后一张照片:

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

    List<File> files = getListFiles(new File("MyAppImageFolderPath")); 

    File imgFile = files.get(files.size());

    if(imgFile.exists()){

        Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

        ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);

        myImage.setImageBitmap(myBitmap);

        }
     }



 private List<File> getListFiles(File parentDir) {
    ArrayList<File> inFiles = new ArrayList<File>();
    File[] files = parentDir.listFiles();
    for (File file : files) {
        if (file.isDirectory()) {
            inFiles.addAll(getListFiles(file));
        } else {
            if(file.getName().endsWith(".jpg")){ //change to your image extension
                inFiles.add(file);
            }
        }
    }
    return inFiles;
}