【问题标题】:Using the camera activity in Android在 Android 中使用相机活动
【发布时间】:2010-02-22 23:02:42
【问题描述】:

如果您想使用使用原生 Android 相机的内置相机 Activity,只需执行以下操作。

Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);   
        this.startActivityForResult(camera, PICTURE_RESULT);

您想从您展示的漂亮相机中取回图像 - 但如何?

【问题讨论】:

  • 好吧,我的问题是:PICTURE_RESULT 是什么?
  • PICTURE_RESULT 是一个自定义常量。您作为 requestCode 传递给 startActivityResult() 的值将与 Intent 完成时传递给 onActivityResult() 的值相同,以便您知道返回结果的 Intent 是什么。

标签: java android camera android-activity


【解决方案1】:

如果您想恢复图像的全部荣耀,请将 uri 传递给 EXTRA_OUTPUT 额外内容中的 Intent。如果您可以使用较小的位图(并且您应该可以),只需正常调用意图即可。

现在您有两个选择,处理 EXTRA_OUTPUT extra 中返回的图像的 uri,或者在您的 onActivityResult 方法中执行以下操作:

if (requestCode == PICTURE_RESULT) //
             if (resultCode == Activity.RESULT_OK) {
                // Display image received on the view
                 Bundle b = data.getExtras(); // Kept as a Bundle to check for other things in my actual code
                 Bitmap pic = (Bitmap) b.get("data");

                 if (pic != null) { // Display your image in an ImageView in your layout (if you want to test it)
                     pictureHolder = (ImageView) this.findViewById(R.id.IMAGE);
                     pictureHolder.setImageBitmap(pic);
                     pictureHolder.invalidate();
                 }
             }
             else if (resultCode == Activity.RESULT_CANCELED) {...}
    }

你去吧!

【讨论】:

  • 感谢 slrobert 这对我帮助很大。许多其他教程解释了从头开始实现相机功能,而不是简单地提出ActivityForResult 并让默认的相机活动处理事情!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
相关资源
最近更新 更多