使用QRCodeReaderView扫描二维码
现在的二维码扫描一般都是采用zxing,但是使用起来并不是很理想,因此我们需要对原始的zxing进行改进,在github上发现了一个开源项目,修改了zxing使其更好使用,如果你觉得不好使,还可以参照他的做法自己修改zxing。
其使用方法很简单:
1.将library 添加到你的项目中。
2.在activity中实现onQRCodeReadListener接口,并实现其方法。
3.确保activity是竖屏模式,同时在 manifest.xml中添加camera的访问权限。
4.将QRCodeReaderView添加到你的布局文件中。
5.设置onQRCodeReadListener的回调接口,可直接在activity中实现。
public class DecoderActivity extends Activity implements OnQRCodeReadListener {
private TextView myTextView;
private QRCodeReaderView mydecoderview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_decoder);
mydecoderview = (QRCodeReaderView) findViewById(R.id.qrdecoderview);
mydecoderview.setOnQRCodeReadListener(this);
myTextView = (TextView) findViewById(R.id.exampleTextView);
}
// Called when a QR is decoded
// "text" : the text encoded in QR
// "points" : points where QR control points are placed
@Override
public void onQRCodeRead(String text, PointF\[\] points) {
myTextView.setText(text);
}
// Called when your device have no camera
@Override
public void cameraNotFound() {
}
// Called when there's no QR codes in the camera preview image
@Override
public void QRCodeNotFoundOnCamImage() {
}
@Override
protected void onResume() {
super.onResume();
mydecoderview.getCameraManager().startPreview();
}
@Override
protected void onPause() {
super.onPause();
mydecoderview.getCameraManager().stopPreview();
}
}