我对 Android 的 MonoTouch / Mono 有点陌生。我在 iOS 和 Android 应用程序的平台上工作,并且正在将我们的本机代码移植到 C#。
我们的应用程序显示图像。然而,在 Mono 中没有通用的图像类型。在 Android 的 Mono 中,一个选项正在使用Bitmap
(不能被子类化)或者BitmapDrawable
,在 iOS 中有UIImage
.
为了使应用程序中的一些代码在不同平台上更加一致,在我看来,创建一个处理图像的通用类是个好主意。该类基本上是相应“本机”类的外观。我希望此类具有的功能之一是从字节数组创建图像对象。目前我的代码如下所示(并且工作正常):
using System;
#if ANDROID
using Android.Graphics;
using Android.Graphics.Drawables;
#else
using MonoTouch.UIKit;
using MonoTouch.Foundation;
#endif
namespace OurCompany.Core
{
#if ANDROID
public class Image : BitmapDrawable
{
public Image (byte[] bytes) : base(BitmapFactory.DecodeByteArray (bytes, 0, bytes.Length))
{
}
}
#else
public class Image : UIImage
{
public Image (byte[] bytes) : base(NSData.FromArray(bytes), 1)
{
}
}
#endif
}
现在我想知道,使用此设置可能会遇到任何问题吗?我想知道这样的设置是否会出现任何性能、缓存或其他问题。