Изображение не отображается в пользовательском представлении - PullRequest
0 голосов
/ 07 октября 2018

У меня есть это привычное представление в общем проекте:

public class CustomAdView : View
{

}

, затем я добавляю его на главную страницу:

var adView = new CustomAdView();
Grid.SetRowSpan(adView, 4);
_mainGrid.Children.Add(adView);
// here if I add an Image instead, it shows without problem.

Затем в проекте Android я имеюпользовательский рендер для этого CustomAdView, например:

[assembly: ExportRenderer(typeof(CustomAdView), typeof(CustomAdViewRenderer))]
namespace MyApp.Droid.Renderers
{
    public class CustomAdViewRenderer : ViewRenderer<CustomAdView, Android.Views.View>
    {
        public CustomAdViewRenderer(Context context)
            : base(context)
        {

        }

        protected override void OnElementChanged(ElementChangedEventArgs<CustomAdView> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement != null && Control == null)
                SetNativeControl(CreateAdView());
        }

        // ...

        private Android.Views.View CreateAdView()
        {
            try
            {
                var url = RequestImageUrlFromServer();

                var imageView = new ImageView(Context);
                imageView.Click += (o, e) =>
                {
                    Device.OpenUri(new Uri("http://www.google.com"));
                };
                imageView.SetImageURI(Android.Net.Uri.Parse(url));
                imageView.LayoutParameters = new LinearLayout.LayoutParams(LayoutParams.FillParent, LayoutParams.FillParent);

                return imageView;
            }
            catch (Exception)
            {
                return null;
            }
        }
    }
}

CreateAdView() возвращает imageView правильно.Если я нажимаю на экран, он реагирует на событие щелчка и открывает браузер, но проблема в том, что он не показывает изображение!

Полагаю, я неправильно установил источник ImageView.URL-адрес изображения выглядит примерно так:

https://addeals.s3.amazonaws.com/campaigns/pub8/testing/768x1024_hangman_test.jpg

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете ссылаться на следующий код

var iamgeview = new ImageView(Context);
URL url = new URL("xxx");
Bitmap pngBP = BitmapFactory.DecodeStream(url.OpenStream());
iamgeview.SetImageBitmap(pngBP); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...