我正在成功扫描 qrcode 并将结果 url 显示到下面的 textview 中。
etxt_qrcode.setText(intent.getStringExtra("SCAN_RESULT"));
现在我想将扫描的图像显示到 imageview 中。我不知道我到底想做什么。zxing 是否返回与图像相关的任何内容以显示 imageview 或告诉我将结果扫描图像显示到 imageview 的过程。请给我过去两天我在这方面苦苦挣扎,这是一个必要的帮助。谢谢。
问问题
3910 次
3 回答
2
没有办法做到这一点。图像不返回。问题是图像可能非常大,无法打包。但是通过下采样和压缩,可能没什么大不了的。如果你想处理它,我会招待一个补丁。http://code.google.com/p/zxing
于 2013-11-05T11:57:36.483 回答
1
这可以通过以下方式轻松实现:首先在开始之前设置意图: setBarcodeImageEnabled(true); 之后,您将在 OnActivityResult 中获得图像路径,如下所示: String path=intent.getStringExtra("SCAN_RESULT_IMAGE_PATH");
谢谢
于 2016-03-31T11:03:49.477 回答
0
可能没有直接的方法可以从 Intent Extras 中获取图像,但有一种解决方法可能会有所帮助,在您获得解码后的字符串后,您可以再次将其转换为图像。这是一个这样做的代码,
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanResult != null) {
generateQRCode(scanResult.getContents());
}
}
}
public void generateQRCode(String data){
com.google.zxing.Writer wr = new MultiFormatWriter();
try {
int width = 350;
int height = 350;
BitMatrix bm = wr.encode(data, BarcodeFormat.QR_CODE, width, height);
mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
mBitmap.setPixel(i, j, bm.get(i, j) ? Color.BLACK : Color.WHITE);
}
}
} catch (WriterException e) {
e.printStackTrace();
}
if (mBitmap != null) {
img.setImageBitmap(mBitmap);
}
}
于 2015-02-08T22:19:23.730 回答