xamarin.android - ffimageloading.cross.MvxCachedImageView 从 Android 上的资源加载 svg
问题描述
我正在尝试使用以下 axml 加载我的资源中的 svg(设置为 Embeddded Resource VS2019):
<ffimageloading.cross.MvxCachedImageView
android:layout_width="36dp"
android:layout_height="36dp"
local:MvxBind="ImagePath res:svg.passenger" />
但什么也没显示。它占用 36x36 空间,但无法加载 svg
在调试输出中它显示:
2019-09-12 13:38:13 [错误] (MvxBind) 视图绑定 MvxException 期间引发的异常:意外字符:在 targetProperty 文本 res:svg.passenger 中的位置 3 MvvmCross.Binding.Parse.PropertyPath.MvxPropertyPathParser.ParseNextToken () [0x00036] 在 C:\projects\mvvmcross\MvvmCross\Binding\Parse\PropertyPath\MvxPropertyPathParser.cs:70 在 MvvmCross.Binding.Parse.PropertyPath.MvxPropertyPathParser.Parse (System.String textToParse) [0x00009] 在 C: \projects\mvvmcross\MvvmCross\Binding\Parse\PropertyPath\MvxPropertyPathParser.cs:39 09-12 13:38:13.606 I/mono-stdout(18939): 2019-09-12 13:38:13 [错误] (MvxBind ) 视图绑定期间抛出异常 MvxException: Unexpected character : at position 3 in targetProperty text res:svg.passenger
我也试过:
<ffimageloading.cross.MvxCachedImageView
android:layout_width="36dp"
android:layout_height="36dp"
local:MvxBind="ImagePath res://svg.passenger" />
<ffimageloading.cross.MvxCachedImageView
android:layout_width="36dp"
android:layout_height="36dp"
ImagePath="res:svg.passenger" />
和
<ffimageloading.cross.MvxCachedImageView
android:layout_width="36dp"
android:layout_height="36dp"
ImagePath="res://svg.passenger" />
我很确定 svg 没有损坏,因为如果我使用 XamSvg 它会显示得很好
<XamSvg.SvgImageView
local:svg="res:svg.passenger"
local:colorMapping="4C7BC1=AAAAAA"
android:layout_width="36dp"
android:layout_height="36dp" />
更新:
<ffimageloading.cross.MvxCachedImageView
android:gravity="right"
android:layout_width="36dp"
android:layout_height="36dp"
local:MvxBind="ImagePath 'res:passenger.svg'" />
现在导致不同的异常:
09-12 14:42:56.806 D/skia (23916): --- 无法创建带有消息“未实现”的图像解码器图像加载失败:passenger.svg System.BadImageFormatException:FFImageLoading.PlatformImageLoaderTask
1[TImageView].GenerateImageFromDecoderContainerAsync (FFImageLoading.IDecodedImage
1 [TNativeImageContainer ] 解码,FFImageLoading.Work.ImageInformation imageInformation, System.Boolean isPlaceholder) [0x000ba] 在 C:\projects\ffimageloading\source\FFImageLoading.Droid\Work\PlatformImageLoadingTask.cs:221 09-12 14:42:56.810 D/skia (23916):---无法使用消息“未实现”创建图像解码器 09-12 14:42:56.849 I/mono-stdout(23916):图像加载失败:passenger.svg 09-12 14:42:56.850 I /mono-stdout(23916): System.BadImageFormatException: FFImageLoading.Work.ImageLoaderTask 中的位图无效3[TDecoderContainer,TImageContainer,TImageView].GenerateImageAsync (System.String path, FFImageLoading.Work.ImageSource source, System.IO.Stream imageData, FFImageLoading.Work.ImageInformation imageInformation, System.Boolean enableTransformations, System.Boolean isPlaceholder) [0x002e2] in C:\projects\ffimageloading\source\FFImageLoading.Common\Work\ImageLoaderTask.cs:360 at FFImageLoading.Work.ImageLoaderTask
3[TDecoderContainer,TImageContainer,TImageView].RunAsync()[0x0047c]在C:\projects\ffimageloading\source\FFImageLoading.Common\Work\ImageLoaderTask.cs:643
解决方案
啊...好吧..这很尴尬:
FFImageLoading.Cross.MvxCachedImageView
不是您正在寻找的视图
FFImageLoading.Cross.MvxSvgCachedImageView
虽然有效:)
对于其他寻找真实示例的人来说,如下所示:
<FFImageLoading.Cross.MvxSvgCachedImageView
android:id="@+id/iconJob"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginBottom="10dp"
local:MvxBind="Click NavigateJobCommand; ImagePath 'resource://Throwaway1.ResourceLibraryWithAllSvgs.svg.taxi.svg?assembly=Throwaway1.ResourceLibraryWithAllSvgs'" />
推荐阅读
- css - 更改所选选项卡的颜色,TabMenu PRIMENG - 样式
- android - firebase 中的数据库页面未显示我的数据库
- sql - 如何将文本列 VARCHAR2(4000 BYTE) 转换为日期格式?
- docker - 如何正确地将我的 Nest-Js/Angular docker-compose 图像连接到我的主机?
- leaflet - 在 Leaflet 地图中编辑图层
- swift - 添加numberOfLoops = -1后,应用模拟器终止
- r - R 闪亮的仪表板传单弹出灰色背景
- git - 在最后一次提交尚未合并的同一分支上发出新的拉取请求
- ssis-2012 - 本机错误代码:4. 读取元组时内存不足
- ios - 在 SwiftUI 中管理视图层次结构