У меня есть это привычное представление в общем проекте:
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
Любая помощь очень ценится.