私はAndroid用のMonoTouch/Monoに少し慣れていません。私はiOSおよびAndroidアプリ用のプラットフォームで作業しており、ネイティブコードをC#に移植する過程にあります。
私たちのアプリは画像を表示します。ただし、Monoには一般的な画像タイプはありません。Mono for Androidでは、オプションが使用されていますBitmap
(サブクラス化できません)。またはBitmapDrawable
、iOSではがありUIImage
ます。
アプリ内の一部のコードをプラットフォーム間でより一貫性のあるものにするために、画像を処理するための共通のクラスを作成することをお勧めします。このクラスは基本的に、対応する「ネイティブ」クラスのファサードです。このクラスに持たせたい機能の1つは、バイトの配列から画像オブジェクトを作成することです。現在、私のコードは次のようになっています(そして正常に動作します):
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
}
今、私はこのセットアップを使用して遭遇する可能性のある問題はありますか?このような設定でパフォーマンス、キャッシュ、またはその他の問題が発生する可能性があるかどうかを知りたいです。