【问题标题】:How I can share resources between Xamarin.Android project and Xamarin.IOS project using portable class library如何使用可移植类库在 Xamarin.Android 项目和 Xamarin.IOS 项目之间共享资源
【发布时间】:2017-03-15 09:39:55
【问题描述】:

我创建了一个新项目,其中包含一个适用于 Android 和 IOS 的可移植类库,然后我在此解决方案中创建了两个适用于 Android 的解决方案和另一个适用于 IOS 的解决方案,以便我可以在两个项目之间共享代码。我不想使用 Xamarin.Forms,我想使用 Xamarin.Android 和 Xamarin.IOS。 我的问题是,如果我想在 Xamarin.Android 项目和 Xamarin.IOS 项目之间共享诸如 strings.xml 之类的资源,我该怎么做?

【问题讨论】:

    标签: xamarin.ios xamarin.android resources portable-class-library sharing


    【解决方案1】:

    嗯,你有两个选择。一个是共享项目,另一个是可移植类库。无论哪种方式,您都会在您的 Android 和 iOS 项目中引用该项目。您在共享或可移植项目中拥有的任何资源或类都将可供您的应用程序使用。

    编辑:

    要在支持不同语言时提供不同的字符串翻译,您需要使用.resx(资源文件)。您可以从 Visual Studio 或 Xamarin Studio 执行此操作。使用 Visual Studio,您可以使用 Multilingual App Toolkit。虽然您不想使用 Xamarin Forms,但我仍然相信 tutorial for Xamarin Forms Localization 至少应该可以帮助您更多地了解它们的用途。因为您没有使用本地字符串本地化,您可能需要在视图中做更多的工作来设置视图中的文本值。

    【讨论】:

    • 没错,我已经有了 PCL,我正在寻找一种方法来将多语言支持(每种语言的字符串文件)共享给我的 Android 和 IOS 项目。
    • 谢谢。是否可以从 PCL 共享 PNG 文件?
    • Resx 文件也支持图像。您可以创建一个类似于本地化教程中所示的 XAML 扩展,以将其转换为 ImageSource。如果您需要支持不同像素密度的图像,例如@2x@3x,您将需要实现一个接口,让您知道要获取哪个资源,因为您使用的是共享图像...也就是说您会更好关闭以遵循本地化示例并将图像保留在您的平台特定项目中。
    • 这是否适用于Standard Class Library 中的原始资产(.ttf、.db3 等)?谢谢。
    • 是的 .NET Standard 库确实支持嵌入式资源
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多