当前位置: 首页 > 知识库问答 >
问题:

OnPictureTaked Byte[]在某些设备中较小

相温文
2023-03-14

这是我的代码

     PictureCallback mPicture = new PictureCallback() {

        @Override
        public void onPictureTaken(byte[] data, Camera camera) {

            final BitmapFactory.Options sizeOptions = new BitmapFactory.Options();
//                sizeOptions.inJustDecodeBounds = false;
                sizeOptions.inScaled = false;
//                sizeOptions.inDither = false;
            sizeOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
            BitmapFactory.decodeByteArray(data, 0, data.length, sizeOptions);
            Log.d("onPictureTaken", "Bitmap is " + sizeOptions.outWidth + "x"
                    + sizeOptions.outHeight);


            int angleToRotate = getRoatationAngle(currentCameraId);
            Log.d("Tag", "Rotation angle: " + angleToRotate);
            if (currentCameraId == Camera.CameraInfo.CAMERA_FACING_FRONT)
                angleToRotate = angleToRotate + 180;

            final String albumId = Util.ReadSharePrefrence(getActivity(), Constant.SHRED_PR.KEY_Current_AlbumID);
            new SavePhotoTask(albumId, data, angleToRotate, isChecked, orientation).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
            camera.startPreview();
        }
    };

共有1个答案

程和蔼
2023-03-14

我发了约3个小时的问题,但没有人甚至评论。

我就知道问题出在哪里了。取决于参数物料引用

这是我的代码

 private void initPreview(int width, int height) {
        if (camera != null && previewHolder.getSurface() != null) {
            try {
                camera.setPreviewDisplay(previewHolder);
            } catch (Throwable t) {
//              Log.e("PreviewDemo-surfaceCallback","Exception in setPreviewDisplay()");
            }
            Camera.Parameters parameters = camera.getParameters();
            Camera.Size size = getBestPreviewSize(width, height, parameters);
            parameters.setJpegQuality(90);
            if (size != null) {
                Log.d("", "initPreview: width  = "+size.width+ " height = "+size.height);
                parameters.setPreviewSize(size.width, size.height);
                parameters.setPictureSize(size.width, size.height);
                camera.setParameters(parameters);
                cameraConfigured = true;
            }
        }
    }
 类似资料:
  • 我的Android应用程序无法安装在一些“随机”、较旧的API设备上(任何低于API级别25的设备),错误如下: 所以,基本上看起来… API 我见过类似的问题,答案与小写的包名有关。我已经有了。 有人有什么想法吗? 舱单: BTW我用的是Visual Studio 2019和一夫一妻制3.7

  • 最近,我们在Android应用程序中增加了对Chromecast的支持,但在对各种移动设备(手机和平板电脑)的扩展测试中,发现在许多移动设备上,Flipps应用程序都没有发现Chromecast。在相同的设备上,我们使用了最新版本的官方Chromecast SDK演示应用程序进行测试,该应用程序从https://github.com/googlecast/castvideo-Android下载(主

  • 我正试图在后台获取用户位置。在我的手机(htc one m7)上一切都很好,但出于某种原因,它不能在我测试的两个设备上工作:三星galaxy s3索尼Xperia Z1 顺便说一句:我把所有东西都添加到了清单中。

  • 问题内容: 我看到Google Play中与Fabric / Crashlytics相关的崩溃。从正常的Crashlytics更新到新的Fabric Crashlytics之后,发生了这种情况。我只能在其中一台设备(Galaxy S2)上重现它。我拥有的所有其他设备(Nexus 5和S4)都没有崩溃。这是堆栈跟踪: 这是我的build.gradle的内容: 问题答案: 我只是凭直觉就知道了!升级到

  • 问题内容: 我正在尝试获取文件的大小,然后再下载。我曾经这样做,它在我的家用计算机Android 2.1 Emulator上运行良好。 但是,一旦我从手机(WiFi或3G)运行我的应用程序,该功能将无法使用,而当我从工作笔记本电脑的Android 2.1仿真器中运行该应用程序时,它也将无法使用。 有谁知道解决方法?还有另一种方法可以获取文件的大小,而无需使用。 问题答案: 此信息并非始终可用。通常

  • 我试图在Android上使用ExoPlayer创建一个流媒体应用程序。大多数的流工作良好,只有一些他们不播放声音,在某些设备上只。 这是问题吗?如果我必须从头开始构建扩展,是否可以在Windows中完成?在我的PC上安装Linux有点问题。并且有没有任何教程来做它正确,根据我的流信息? ExoPlayer是一个很棒的媒体播放器,但是它确实缺乏文档(或者很难找到)。