public class MainActivity extends AppCompatActivity {
TextView txt;
Bitmap myBitmap;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt = (TextView)findViewById(R.id.txt);
ImageView myImageView = (ImageView) findViewById(R.id.imgview);
myBitmap = BitmapFactory.decodeResource(
getApplicationContext().getResources(),
R.drawable.barcode);
myImageView.setImageBitmap(myBitmap);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bar();
}
});
}
public void bar(){
BarcodeDetector detector =
new BarcodeDetector.Builder(getApplicationContext())
.setBarcodeFormats(Barcode.DATA_MATRIX | Barcode.QR_CODE)
.build();
if(!detector.isOperational()){
txt.setText("Could not set up the detector!");
return;
}
Frame frame = new Frame.Builder().setBitmap(myBitmap).build();
SparseArray<Barcode> barcodes = detector.detect(frame);
Barcode thisCode = barcodes.valueAt(0);
txt.setText(thisCode.rawValue);
Toast.makeText(getApplicationContext(), thisCode.rawValue.toString(), Toast.LENGTH_SHORT).show();
}
}
即barcode.png
:
食品条码
每当我使用它作为位图运行应用程序时,它都会崩溃并给出out of bounds array 0
异常。我不确定为什么会这样,但应用程序不断崩溃。
它可以检测方形条码,但无法检测到这个条码。这里有什么问题?
LOGCAT: 来自应用程序的 Logcat