【问题标题】:Making a file for the PC while using an Android library在使用 Android 库时为 PC 制作文件
【发布时间】:2021-08-03 05:55:13
【问题描述】:

我正在编写一个模块来创建一个文件以供 Android 应用程序用作资源。作为一个 Kotlin 脚本,我可以做到这一点。但是,据称现在它需要使用带有 Context 的 Android 库。 (我想在 android.graphics.Paint 上调用 hasGlyph(),并提供字体资源中的字体。)我在 Android Studio 向导中尝试了“Android 库”、“Java 或 Kotlin 库”和“Phone & Tablet Module” ,在这里阅读,Gradle 见鬼。我开始相信一个应用程序可能是我唯一的选择,但是对于一项更简单的任务来说,必须从设备中检索文件似乎非常不方便(我也不知道该怎么做)脚本。

  1. 这种情况有这么不寻常吗?
  2. 完成的设置是什么?

【问题讨论】:

  • 如果您尝试使用 android.graphics.Paint,它必须是 Android 应用程序的一部分 - 该类仅在 Android 框架中定义。但很可能您应该在 PC 上执行此操作,并使用不同的绘图库。

标签: android android-studio gradle


【解决方案1】:

你能分享你的脚本吗?

创建这样的库应该没有问题。您需要做的是设计您的 API 以公开您尝试实现的功能。

由于某种原因,我无法在 Arctic Fox 中创建 Android 库,因此前往 IntelliJ IDEA 将示例放在一起。但这大致是您应该实现的目标。

class Font(private val paint: Paint): HasGlyph {
    override fun hasGlyph(glyph: String) = paint.hasGlyph(glyph)
}

fun interface HasGlyph {
    fun hasGlyph(glyph: String): Boolean
}

如果您需要调用的框架函数需要Context 的实例,则可能值得考虑是否可以在没有Context 实例的情况下实现您的要求,如果不能,您能否封装它另一个类/接口中的某种功能。

【讨论】:

    【解决方案2】:

    使用 java.awt.Font 实现相同功能的 Java/Kotlin 脚本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多