有人能告诉我如何使用Zxing library增强现实应用程序吗?我知道使用Zxing的最简单的方法是通过Intent,但我需要Camera VIEw,所以我不能使用条形码应用程序.
我有一个SurfaceHolder.Callback,它被添加到主活动并覆盖以下方法:
@OverrIDepublic voID surfaceCreated(SurfaceHolder holder) { mCamera = Camera.open(); try { mCamera.setPrevIEwdisplay(holder); } catch (IOException e) { Log.d(TAG, "Can not set surface holder"); } mCamera.startPrevIEw(); Parameters parameters = mCamera.getParameters(); parameters.setPrevIEwSize(1280, 720); parameters.setPictureSize(1280, 720); mCamera.setParameters(parameters); QrCodeReader reader = new QrCodeReader(); mCamera.setPrevIEwCallback(reader);}
设置的图片大小必须可用,因为它在List.getSupportedPictureSizes()列表中.
而这个方法在QrCodeReader类中实现了PrevIEwCallback:
private Result result;private MultiFormatReader reader = new MultiFormatReader();private boolean init = false;public QrCodeReader(){ Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>(); hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE); reader.setHints(hints);}@OverrIDepublic voID onPrevIEwFrame(byte[] data, Camera camera) { PlanarYUVluminanceSource source = new PlanarYUVluminanceSource(data, 1280, 720, 0, 0, 1280, 720, true); HybrIDBinarizer hybBin = new HybrIDBinarizer(source); BinaryBitmap bitmap = new BinaryBitmap(hybBin);try { result = reader.decodeWithState(bitmap); Log.d("Result", "Result found!"); } catch (NotFoundException e) { Log.d(TAG, "NotFoundException"); } finally { reader.reset(); }}
Logcat只显示NotFoundException.
解决方法:
NotFoundException是正常的.如果框架没有条形码,那就是结果.这并不意味着本身出现任何问题.继续扫描.
总结以上是内存溢出为你收集整理的java – 在PreviewFrame上使用Zxing Library增强现实全部内容,希望文章能够帮你解决java – 在PreviewFrame上使用Zxing Library增强现实所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)