android–onPictureTaken byte []在某些设备中体积小

android–onPictureTaken byte []在某些设备中体积小,第1张

概述我正在使用Surfaceview创建自定义相机应用程序.在我的应用程序中我拍摄的图片,但它在注4中完美地工作,它在xiaomi移动中有问题,我不知道为什么会发生这种情况.注4onPictureTaken字节[]大小是原始的.但xiaomionPictureTakenByte[]大小始终为160×120这是我的代码Pict

我正在使用SurfacevIEw创建自定义相机应用程序.在我的应用程序中我拍摄的图片,但它在注4中完美地工作,它在xiaomi移动中有问题,我不知道为什么会发生这种情况.

注4 onPictureTaken字节[]大小是原始的.

xiaomi onPictureTaken Byte []大小始终为160×120

这是我的代码

     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();        }    };

解决方法:

我发帖约3个小时,但没有人评论.

我弄清楚问题是什么.它取决于参数部分Reference

这是我的代码

 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 – onPictureTaken byte []在某些设备中体积小全部内容,希望文章能够帮你解决android – onPictureTaken byte []在某些设备中体积小所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1099357.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存