【发布时间】:2016-08-02 12:56:53
【问题描述】:
我目前正在使用 Xamarin Forms(共享)开发跨平台应用程序。我需要生成一个 EAN-13 条形码,我的代码在 Android 上运行良好,但在 iOS 上没有任何反应。我正在使用 ZXingBarcodeImageView。 这是我的代码。
public class CardPage : ContentPage
{
ZXingBarcodeImageView barcode = new ZXingBarcodeImageView
{
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
};
barcode.BarcodeFormat = ZXing.BarcodeFormat.EAN_13;
barcode.BarcodeOptions.Height = 25;
barcode.BarcodeOptions.Width = 75;
barcode.BarcodeValue = "2800100028014";
Content = barcode;
}
编辑
好的,所以我编写了特定于平台的代码来处理这个问题,直到问题得到解决。所以现在我的代码是这样的。
#if __IOS__
var writer = new ZXing.Mobile.BarcodeWriter
{
Format = ZXing.BarcodeFormat.EAN_13,
Options = new ZXing.Common.EncodingOptions
{
Width = 75,
Height = 25,
Margin = 30
}
};
var b = writer.Write("2800100028014");
Image m = new Image
{
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,
Source = ImageSource.FromStream(() => b.AsPNG().AsStream())
};
Content = m;
#endif
#if __ANDROID__
ZXingBarcodeImageView barcode = new ZXingBarcodeImageView
{
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,
};
barcode.BarcodeFormat = ZXing.BarcodeFormat.EAN_13;
barcode.BarcodeOptions.Height = 25;
barcode.BarcodeOptions.Width = 75;
barcode.BarcodeOptions.Margin = 20;
barcode.BarcodeValue = "2800100028014";
Content = barcode;
#endif
【问题讨论】:
标签: c# xamarin xamarin.ios xamarin.forms zxing