Отобразить изображение из пути к файлу в xamarin
Я пытаюсь отобразить изображение с пути. Я могу отобразить изображение, если переместить изображение в рисованное, но я хочу отобразить изображение из пути к изображению. Я пытался использовать imageBitMap с GetImageBitmapFromUrl("путь к изображению"), но он отображал только пустой экран. Вторым способом, который я попробовал, является Android.Net.Uri url = Android.Net.Uri.Parse( "путь к изображению")
namespace SetPictureUrl
[Activity(Label = "SetPictureUrl", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);`{
ImageView imagen = FindViewById<ImageView>(Resource.Id.demoImageView);
//------------------ i tried but did not work. the screen is blank
// var imageBitmap = GetImageBitmapFromUrl("my image path");
// imagen.SetImageBitmap(imageBitmap);
//---------------- i tried but did not work. the screen is blank
Android.Net.Uri url = Android.Net.Uri.Parse("./HTC Desire 620/Internal storage/storage/emulated/0/test/fox.jpeg");
imagen.SetImageURI(url);
//----- this work but is not the way i wish to do it. my main program work with file paths
// imagen.SetImageResource(Resource.Drawable.fox);
}
я попытался назвать путь в пути, но, похоже, не имеет значения пример:
(./HTC Desire 620 / Внутренняя память / хранилище / Эмулированная /0/test/fox.jpeg)
, (HTC Desire 620 / Внутренняя память / хранилище / Эмулированная /0/test/fox.jpeg)
и (¬/HTC Desire 620/ Внутренняя память / хранилище / Эмуляция /0/test/fox.jpeg)
но не радость Я хотел бы любую помощь. Не уверен, почему это дает мне столько проблем /
1 ответ
Не могли бы вы попробовать это?
Android.Net.Uri uri = Android.Net.Uri.FromFile(new Java.IO.File(filePath));
System.IO.Stream input = this.ContentResolver.OpenInputStream(uri);
//Use bitarray to use less memory
byte[] buffer = new byte[16 * 1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
pictByteArray = ms.ToArray();
}
input.Close();
//Get file information
BitmapFactory.Options options = new BitmapFactory.Options { InJustDecodeBounds = true };
Bitmap bitmap = BitmapFactory.DecodeByteArray(pictByteArray, 0, pictByteArray.Length, options);
imagen.SetImageBitmap(bitmap);