3

これは死んだ馬かもしれませんが、リソースとしてではなく、画像を追加するためのコンパイルを必要とせずに、Xamarin アプリケーションの外部にある画像でいっぱいのローカル フォルダーを提供し、それらの画像をアプリケーションの Image オブジェクトに表示できるようにする必要があります。私の主なターゲット プラットフォームは Windows 10 です。

Xamarin Forms Image は通常、ファイル名 (パスなし) または URI のいずれかを取ります。どちらの方法でも、ローカル ファイル システムから画像を見つけて表示することができません。私は何か基本的な間違ったことをしているに違いありません。

非稼働サンプル:

Image i = new Image();
i.Source = ImageSource.FromFile(some.png); // Needs to be from folder on local disk
grid.Children.Add(i, c, r);

私が見つけたほとんどの記事は、ソースの一部としてアプリケーションに画像をバンドルする方法を説明しています。繰り返しますが、アプリケーションにバンドルせずに、フォルダーからアプリケーションに表示する必要があります。ユーザーはフォルダーにさらに画像を追加できる必要があり、画像ギャラリーのように、再コンパイル/再インストールせずにアプリで作業できます。

編集: PCLStorage https://github.com/dsplaisted/pclstorageを使用してテキスト ファイルを正常に読み取ることができます。それを Xamarin フォーム イメージに配線する方法はありますか?

4

2 に答える 2

5

画像を読み取り、StreamImageSource で使用できるストリームを返すには、プラットフォーム固有のクラスを作成する必要があります。次に、 DependencyServiceを使用して、この動作を Forms PCL に公開できます。

または、 PCLStorageを使用することもできます

  var f = await FileSystem.Current.LocalStorage.GetFileAsync (path);

  Stream s = await f.OpenAsync (FileAccess.Read);
  image.Source = ImageSource.FromStream(() => s);
于 2016-04-09T21:34:08.207 に答える
0

基本的に、できません。画像をアプリケーションにバンドルしない場合は、何らかの方法で画像をアプリケーションに転送する必要があります。最も一般的なケースは、アプリケーションがその Web サーバーから画像をダウンロードする場所の Web サーバーでこれらの画像を提供することです。

于 2016-04-09T21:19:42.153 に答える