如何使用 Android 库从应用程序获取资源路径?

How to get a resource's path from the app using an Android Library?

我正在使用 Android 库 (SDK A),它有一个自定义选项。

此选项的用法如下例所示:

val sdk = SDK_A()
sdk.customizeFont("font/myFont.ttf")
sdk.show()

这意味着该库将在字体文件夹中寻找 "myFont.ttf" 以使用我的自定义字体显示内容。

我的主要目标是制作一个使用此库的新 Android 库 (SDK B) 并让我的库的用户可以访问此自定义,他们需要将自定义字体放在我的库中可以访问。

我的库应该这样使用:

val sdk = SDK_B()
sdk.customizeFont("font/myFont.ttf") // it could have another approach, like resource id or something like this
sdk.show()

总而言之,SDK B 的用户将拥有自定义字体,并将使用 SDK B 中的 sdk.customizeFont 方法进行设置,SDK B 将使用以下方法设置相同的字体sdk.customizeFontSDK方法A.

我无法更改SDK A,我可以更改SDK B 并告诉用户如何使用它。

SDK A: 需要使用像"font/myFont.ttf"这样的路径来知道字体在哪里。

SDK B:需要知道字体在哪设置SDK A上的路径,不需要用同样的方法。

有人知道如何解决吗?

感谢CommonsWare:

To be clear, the font file goes in main/assets/font/myFont.ttf in your module. You would then pass font/myFont.ttf to setTextFontName().

在我使用 SDK B 的测试应用程序中,我将 myFont.ttf 放在 app/main/src/main/assets/font 中并使用 sdk_b.setTextFontName("font/myFont.ttf") 进行设置。