Xamarin使用自定义渲染器构建Pop-in

时间:2017-06-04 04:59:57

标签: xamarin.android xamarin.forms

我有一个用于Android的Xamarin Forms应用程序,它使用自定义渲染器进行图像处理。我已经优化了这些图像,使得位图在内存中只有大约600kb MasterDetailPage,但我遇到了pop-in问题。也就是说,当我使用MasterDetailPage中的这些图像打开页面时,图像加载速度很快,但是在显示页面后,您仍然可以看到它们在100-200ms内进入视图。

以下是我在private void Button_Clicked(object sender, EventArgs e) { var temp = new NavigationPage(new Pages.HomePage()); Detail = temp; IsPresented = false; }

中加载网页的方法
if (!$search)

我想做的是,如果可能的话,在页面导航到UI之前预先渲染页面以掩盖弹出窗口或任何其他基本上完全删除它的解决方案。

2 个答案:

答案 0 :(得分:0)

通常在Xamarin Forms中,人们使用FFImageLoading

  • Xamarin.iOS,Xamarin.Android,Xamarin.Forms和Windows(WinRT,UWP) 支撑
  • 可配置的磁盘和内存缓存
  • 使用相同图像源(网址,路径,资源)的多个图片视图将仅使用一个缓存在内存中的位图(内存使用量减少)
  • 类似下载/加载请求的重复数据删除。 (如果100个类似的请求同时到达,那么将执行一次实际加载,而另外99次 将等待)
  • 错误并加载占位符支持
  • 图像可以自动下采样到指定大小(内存使用量减少)
  • Fluent API,灵感来自毕加索命名SVG& WebP支持
  • 图片加载淡入式动画支持
  • 可以重试图片下载(RetryCount,RetryDelay)
  • Android位图优化。通过尽可能不使用透明度通道来节省50%的内存。
  • 转换支持FuzzyTransformation CircleTransformation, 圆形转换,角落转换,作物转换 ColorSpaceTransformation,灰度转换, SepiaTransformation,TintTransformation FlipTransformation, RotateTransformation
  • 支持自定义转换(原生平台 IT转换实施)

Here你可以找到一些文档

答案 1 :(得分:0)

首先,将该图片添加到以下路径中,这里我以'Ex'作为项目名称-

<块引用>

Ex/Ex/Ex.Android/Resources/drawable/

如果 drawable 文件夹不存在,则创建它。 然后打开 Visual Studio,在解决方案资源管理器中找到 drawable 文件夹。然后右键单击它并单击添加现有项目并添加您放置在可绘制文件夹中的所有图像。

然后您可以在每个页面上使用图像,即 - <Image Source="ImageName.png" />

您甚至可以在弹出窗口中使用它。