MVVMCross の Android アプリでお気に入りの車のリストを作成しています。私の問題は、そのリストに画像を動的にロードすることです。私のポイントは、車ごとの ImageView が、コンバーターが取得して BitmapDrawable オブジェクトを返す画像の ID を取得していることです。Windows Phone アプリでは動作していますが、Android では少し問題があります。コードは次のようになります。
<LinearLayout
android:id="@+id/PeoplePanel"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:layout_below="@id/TitleTextView"
android:paddingTop="3dip"
android:paddingLeft="10dip">
<ImageView
android:id="@+id/imagePhoto"
android:layout_width="70dp"
android:layout_height="70dp"
local:MvxBind="{'ResourcesImagePath':{'Path':'Item.Obj.IDZdjeciaGlownego', 'Converter':'ByteToImg'}}"/>
コンバーターは次のとおりです。
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var id = (int?)value;
if (id != null)
{
var Service = this.GetService<IKomisSamService>();
var img = Service.GetImage((int)id);
try
{
var drawable = BitmapFactory.DecodeByteArray(img, 0, img.Length);
return new BitmapDrawable(drawable);
}
catch { }
}
return null;
..そして出力:
04-12 11:13:06.034 I/MvxBind ( 856): 135.42 Failed to create target binding for from Item.Obj.IDZdjeciaGlownego to ResourcesImagePath
MvxBind:Warning:135.42 Failed to create target binding for from Item.Obj.IDZdjeciaGlownego to ResourcesImagePath
04-12 11:13:06.034 I/mono-stdout( 856): MvxBind:Warning:135.42 Failed to create target binding for from Item.Obj.IDZdjeciaGlownego to ResourcesImagePath
04-12 11:13:06.644 D/dalvikvm( 856): GC_EXTERNAL_ALLOC freed 1850 objects / 93880 bytes in 48ms
コンバーターは 2 回実行されています。1 回目はサービスに項目を取得するよう要求し、2 回目はダウンロード時にそれを取得して BitmapDrawable オブジェクトを返します。
私の問題はMvxBindにあると思います.ResourcesImagePathを使用すべきではありませんが、彼のパスではなくBitmapDrawableオブジェクトを取得する他のものを使用する必要があります. 前もって感謝します!