質問: packageManager.GetApplicationIcon(packageName); return icon; } ``` を作成しDrawable型で画像を取得したのですが これをそのままPCL側のプロジェクトに持ってきても画像の表示が出来てない状態です。 できればこのDrawable型の画像データをPCL側で、ImageCellのImageSourceに表示させたいと考えております。 しかしDrawable型のままではImageSourceへの設定ができず手詰まりとなっております。 Drawable型の画像を共通プロジェクトにて表示させる方法 もしくは、Drawable型の画像を共通プロジェクト側で表示できる形に変換できる方法は 何かありますでしょうか。 技術的に可能か不可能かという点のみでもよろしいのでご教示頂けないでしょうか。 よろしくお願いいたします。
回答: Drawable経由だと遠回りなきがします。 AndroidのBitmapを作って、バイナリストリームに変換して、そこからImageSourceを作る必要がある気がします(やってないので違うかも) 端末内部の画像というのは具体的にどれでしょうか?どれかによってベストな選択肢が違うと思います。 1. ギャラリー内部の画像 2. アプリのResourceに登録されている画像 3. ファイルシステムに保管されている画像 ### ギャラリー内部の画像 ギャラリー内の画像を取得してFormsで使いたいのであれば、Xamarin.ComponentsのMedia Pluginを利用したらどうでしょうか? https://www.nuget.org/packages/Xam.Plugin.Media/ https://github.com/jamesmontemagno/MediaPlugin ### アプリのResourceに登録されている画像 「内部」の意味が、Resource/drawable~に保存している画像であれば、そのファイル名を直接ImageCellのSourceに記述すれば利用できます。 ImageCellではなくButtonのImageプロパティですがこちらと同じようにすれば利用できます。 https://github.com/ProjectBlueMonkey/BlueMonkey/blob/master/client/BlueMonkey/BlueMonkey.Views/MainPage.xaml#L36 ### ファイルシステムに保管されている画像 ファイルシステムから取得した場合であればAndroid側でDrawableに変換してしまわずに、PCL側までファイルパスとして渡してImageSourceクラスのFromFileメソッドを利用してImageSourceを作成してCellに設定するのが良いと思います。 まぁこれDrawableで取得しているという事はこれではない気がしますが。