【发布时间】:2019-03-04 12:43:09
【问题描述】:
我已经尝试解决这个问题 3 天了,但我仍然没有找到答案。 我想在通过Zxing扫描仪扫描二维码的同时给相机添加一个ZOOM。
build.gradle:
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
XML:
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
ScannerFragment:
@Override
public void onResume() {
super.onResume();
activateScanner();
}
private ViewGroup contentFrame;
private ZXingScannerView zXingScannerView;
private void activateScanner() {
if(zXingScannerView != null) {
if(zXingScannerView.getParent()!=null) {
((ViewGroup)
zXingScannerView.getParent()).removeView(zXingScannerView); // to
prevent crush on re adding view
}
contentFrame.addView(zXingScannerView);
if(zXingScannerView.isActivated()) {
zXingScannerView.stopCamera();
}
zXingScannerView.startCamera(camId);
zXingScannerView.setFlash(isFlash);
//zXingScannerView.setAutoFocus(isAutoFocus);
}
}
我添加了 SeekBar 并且我想用它来控制相机的缩放。
private Camera cameraZoom;
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
try {
Camera.Parameters parameters = cameraZoom.getParameters();
}
catch (NullPointerException e) {
Log.d("NullP",e.getMessage());
}
}
日志:
D/NullP: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
我尝试使用上面的代码执行此操作,但只有错误
请告诉我该怎么做。
【问题讨论】:
-
能否提供错误日志?
-
E/MessageQueue-JNI: java.lang.NullPointerException: 尝试在空对象上调用虚拟方法 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()'参考我不知道如何正确初始化相机。
-
在以下文件中搜索setZoom()方法以供参考github.com/srowen/zxing-bsplus/blob/master/android-core/src/…
-
@ViVekH, public static void setZoom(Camera.Parameters parameters, double targetZoomRatio) 这个方法里面有Camera.Parameters参数项。调用方法时在哪里可以得到这个参数?如果我像我的例子那样做://相机cameraZoom; // Camera.Parameters 参数 = cameraZoom.getParameters ();会有错误
标签: java android camera zooming zxing