我目前正在使用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
最佳答案
好的,所以这不是包装中的问题。只需像这样正确初始化它即可。
在Android平台上,我的MainActivity.cs如下所示,需要初始化的是ZXing.Net:
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
global::Xamarin.Forms.Forms.Init (this, bundle);
global::ZXing.Net.Mobile.Forms.Android.Platform.Init();
LoadApplication (new Test.App ());
this.ActionBar.SetIcon(Android.Resource.Color.Transparent);
}
在iOS平台上,我的AppDelegat.cs看起来像这样,需要初始化的是ZXing.Net:
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init ();
global::ZXing.Net.Mobile.Forms.iOS.Platform.Init();
LoadApplication (new Test.App ());
return base.FinishedLaunching (app, options);
}
关于c# - ZXing条码ImageView未显示生成的条码Xamarin表单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36564354/