【问题标题】:image not displaying when taking picture from 3rd party camera apps从 3rd 方相机应用程序拍照时不显示图像
【发布时间】:2017-04-22 06:17:40
【问题描述】:

我有一个使用相机的简单模块。当我使用默认相机(内置相机)时,它会根据需要显示缩略图。无论如何,当我通过 packageManager 使用 3rd 方相机应用程序(如 candycamera、retrica 等)拍照时,它不会显示缩略图。它有时会崩溃。 我已经在我的限制范围内尝试了所有代码来检查缩略图是否正在显示,但找不到任何相关的解决方案 帮助表示赞赏 谢谢

在 onCreate() 中

private void dispatchPicIntent() {

    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(takePictureIntent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE );
    }
}

在onActivityResult()中

字符串时间戳 = 新的 SimpleDateFormat( "yyyyMMdd_HHmmss").format(new Date());

        pictureFile = new File(Environment
                .getExternalStoragePublicDirectory(
                        Environment.DIRECTORY_PICTURES)
                .getAbsolutePath()
                + File.separator + "IMG_" + timeStamp);

        try {
            FileOutputStream fos = new FileOutputStream(
                    pictureFile);
            Bundle extras = data.getExtras();
            Bitmap bm = (Bitmap) extras.get("data");
            bm.compress(Bitmap.CompressFormat.JPEG, 90, fos);
            fos.close();
            filePath = pictureFile.getAbsolutePath();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

【问题讨论】:

  • 发布您的代码。发布堆栈跟踪。指出哪里出了问题。
  • 每个相机应用都可以随心所欲。您应该准备好不会收到您期望的数据。但是您的应用永远不会崩溃,因为您可以使代码变得健壮。
  • 我刚做了。我可以使用开源库,但我想知道这背后的逻辑

标签: android camera


【解决方案1】:

您可以使用CWAC2库https://github.com/commonsguy/cwac-cam2拍照。真正有用且易于理解的库。

【讨论】:

  • 好的,我会试试你的这个解决方案。同时,如果有其他不需要使用依赖的解决方案,逻辑上的解释会很好。
【解决方案2】:

您可以使用https://github.com/jkwiecien/EasyImage库来拍照。它很容易理解。

【讨论】:

    猜你喜欢
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多