如何在同一活动上的多个ImageView上打开相机

时间:2013-12-17 09:32:52

标签: android timer camera imageview photo

我的布局上有多个imageView,想要同时在所有Imageview上打开相机。并涉及摩擦计时器。因此,用户将移动他的设备,照片将在单击“开始捕获”按钮上逐个捕获并在ImageView上显示。像相机将同时打开,第一个imageview将捕获照片,它将在该imageview上显示,然后在第二个imageView将在下一个2秒捕获照片,并显示在此imageview等等....

我已经通过默认相机通过传递意图应用了拍照,它将在另一个屏幕上打开相机并拍摄照片将保存在SD卡中然后我们拍摄图像,并且在调整大小后将保存在该特定的图像上,所以请不要告诉我以这种方式申请。我不想要这个。我想要的就是上面提到的。

更新

我使用相机API执行此任务,遵循我应用的代码

  @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_live_cam);
      pic = (ImageView)findViewById(R.id.imageView1);
      cameraObject = isCameraAvailiable();
      showCamera = new ShowCamera(this, cameraObject);
      RelativeLayout preview = (RelativeLayout) findViewById(R.id.camera_preview);
      preview.addView(showCamera);
   }

这里ShowCamera是我的类,我实现了SurfaceHolder.Callback。并编写了所有与相机相关的操作。我在相对布局上添加了相机。它工作正常,但我想打开相机并在ImageView上执行所有操作。我应该在这里应用什么技巧来做到这一点。请帮忙..

更新

我们可以像ios一样同时在多个ImageView上打开相机。我们可以获得不同的相机图像帧或预览并在不同的ImageView上设置它们。这样用户就可以感觉到同时打开了多个摄像头。

我正在使用此链接 Fliping the Front Camera to Back Camera in Button Click using android

通过这个我可以打开相机并从后到前切换相机。但在这个问题中,我没有得到xml布局文件。我没有得到如何在不同的imageView上打开相机。

但是通过相同的id如何用不同的imageView处理它。

1 个答案:

答案 0 :(得分:0)

如果您引用this教程,请按照以下步骤进行操作

  1. 每两秒钟呼叫需要Timer -

    camera.takePicture(null, null, new PhotoHandler(getApplicationContext()));

  2. 将拍摄照片,您将收到回传

    @Override
      public void onPictureTaken(byte[] data, Camera camera) {
    //Set data to ImageView here
    }
    
  3. 由于您需要大量ImageViews,因此最好使用GridView并将照片设置为onPictureTaken方法中的项目。