android studio实现二维码扫描
时间: 2023-05-16 12:07:03 浏览: 136
可以使用Zxing库来实现二维码扫描。首先,在build.gradle文件中添加以下依赖:
implementation 'com.google.zxing:core:3.3.3'
implementation 'com.journeyapps:zxing-android-embedded:3.6.0'
然后,在布局文件中添加一个SurfaceView和一个Button,用于启动扫描:
<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<Button
android:id="@+id/scanButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Scan"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
接下来,在Activity中实现扫描功能:
public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {
private ZXingScannerView scannerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scannerView = new ZXingScannerView(this);
scannerView.setResultHandler(this);
FrameLayout frameLayout = findViewById(R.id.frameLayout);
frameLayout.addView(scannerView);
Button scanButton = findViewById(R.id.scanButton);
scanButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
scannerView.startCamera();
}
});
}
@Override
public void handleResult(Result result) {
// 扫描结果处理
Log.d("Scan Result", result.getText());
scannerView.resumeCameraPreview(this);
}
@Override
protected void onResume() {
super.onResume();
scannerView.setResultHandler(this);
scannerView.startCamera();
}
@Override
protected void onPause() {
super.onPause();
scannerView.stopCamera();
}
}
这样就可以实现二维码扫描了。