【问题标题】:Xamarin Android QR-Image ZXing - Not workingXamarin Android QR-Image ZXing - 不工作
【发布时间】:2014-05-30 11:32:04
【问题描述】:

我的 Xamarin 和 MvvmCross 项目有一个核心项目(用于共享代码)。

在这个核心项目中,我生成了一个 QR 图像并将其保存到我的 Android 应用程序的本地驱动器中。以下代码生成内容的字节(始终为 url):

var options = new QrCodeEncodingOptions
{
    Height = 300,
    Width = 300,
    Margin = 0,
    PureBarcode = true
};

var writer = new BarcodeWriter { Format = BarcodeFormat.QR_CODE, Options = options };
return writer.Write(content);

我将此字节数组与文件插件 (MvvmCross) 一起保存在我的 app-data-dir 中。 “Exists”-方法返回 true,所以文件在那里(我希望如此)。

但是当我调用以下代码获取位图以在活动中显示保存的 qr-image 时,Bitmapfactory 每次都返回 NULL:

// First decode with inJustDecodeBounds=true to check dimensions
var options = new BitmapFactory.Options();
options.InJustDecodeBounds = true;

BitmapFactory.DecodeFile(filepath, options);

// Calculate inSampleSize
options.InSampleSize = CalculateInSampleSize(options, reqWidth, reqHeight);

// Decode bitmap with inSampleSize set
options.InJustDecodeBounds = false;
return BitmapFactory.DecodeFile(filepath, options);

在任何地方都没有例外。我不知道,怎么了。与其他图片(以相同方式保存和加载,但没有生成 qr-image),一切正常。

我在我的可移植(核心)库中使用了以下 zxing: zxing.portable (v4.0.30319) 说明:基于java的.net条码扫描库端口(java zxing 13.03.2014 15:19:08)

欢迎任何帮助 =) 谢谢

编辑(解决方案):

问题是,我在 PCL 库中实现了 QR 图像的生成代码。在这个设置中,zxing-lib 生成了一个 RAW 字节数组(感谢 'Michael' 的帮助)。

解决方案:我刚刚为每个平台实现了一个 MvvmCross-Plugin。现在 zxing-lib (for android) 生成一个位图而不是一个 RAW 字节数组。解决方案的最终输入:BarcodeWriter.cs

【问题讨论】:

    标签: android qr-code zxing


    【解决方案1】:

    zxing.portable 的默认渲染器返回原始 ARGB 数据的字节数组。 您应该使用方法 BitmapFactory.DecodeByteArray 或者在保存之前从字节数组构建支持的文件格式。

    【讨论】:

    • 感谢您的回答。但是我该怎么做呢?我在 PCL 库中生成 QR 图像。在那里我不能使用 BitmapFactory-Methods。
    • 在上面的示例中,您使用的是BitmapFactory.DecodeFile(filepath, options);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    相关资源
    最近更新 更多