【问题标题】:How to reference a drawable from a library project into a main project's layout in android?如何将库项目中的可绘制对象引用到android中的主项目布局中?
【发布时间】:2011-06-05 06:47:44
【问题描述】:

我有一个 android 库项目和可重复使用的可绘制资源。
可以说包名称是:com.vijay.mylib;

然后我有一个主项目,它使用上面的库项目。
假设它的包名是:com.vijay.myproject

考虑到我已将库项目与我的主项目正确链接。

在我的主项目中,我有一个名为 main.xml 的布局。 我想在 main.xml 中使用一些可绘制的 rom 库项目。 我怎样才能在 xml 中做到这一点?
像“@drawable/myImage”这样以正常方式引用对我不起作用。参考选择器窗口仅向我显示主项目中的可绘制对象。不是来自图书馆项目。

(注意:两个项目都有不同的 R.java 包。它对此有什么作用吗?)

【问题讨论】:

    标签: android layout reference drawable android-library


    【解决方案1】:

    您可能需要为库添加自己的 uri 并使用它来引用可绘制对象。

    xmlns:vijay="http://schemas.android.com/apk/res/com.vijay.mylib"
    

    那么你应该可以使用drawable访问

    @vijay:drawable/myImage
    

    【讨论】:

    • 您会将 xmlns:vijay=... 放在清单或布局文件中的什么位置?
    • schemas.android.com/apk/res/com.at.customkeyboardex3" xmlns:android="schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > 我无法获得 @at:drawable/left,它给了我错误“没有找到匹配的资源......”
    • 这是我正在使用的库 com.at.customkeyboardex3,假设在 com.at.reuse 项目中,所以上面提到的 xml 将是在 com.at.reuse 项目的 res-->layout 文件夹中
    【解决方案2】:

    确定在库项目(lib 项目)和应用程序项目(app 项目)之间使用哪些可绘制资源的最佳方法是设计:

    1. 默认情况下,应用项目的可绘制资源将取代同名 lib 项目的可绘制资源的使用。因此,确保使用 lib 项目资源的最佳方法是将资源从应用项目中完全移除。

    2. 我遇到的另一个问题是,如果您希望优先使用应用程序项目资源,请确保应用程序项目中的可绘制文件夹名称与资源文件夹相同库项目中的名称。 IE。如果您的 lib 项目资源位于 drawable-mdpi 中,请确保该文件夹在应用项目中也称为 drawable-mdpi

    【讨论】:

      【解决方案3】:

      2022年,如果将lib导入到你的项目中,它就很容易使用,如下图所示。

      1-你想用在哪里,写R.drawable.any_png

      2- 在左侧打开图标,然后选择libraries 项目

      3- 你可以看到所有的图片都在 3,2 的两个地方

      【讨论】:

        猜你喜欢
        • 2012-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多