从 XML 文件中查找另一个模块中的资源 - Android
Look for Resources in another Module from XML File - Android
我的项目作为多个模块。本质上,将有跨多个模块使用的资源。我们称此资源为 logo_image.png
目前,在每个模块的res文件夹中,都存在logo_image.png的副本。这可能是个问题,因为它会吃掉很多 space.
我想做的是创建一个 Common 模块,它存储整个项目中使用的所有资源,并让所有引用指向该 Common 模块中的资源。这样的事情可能吗?这是我的尝试(失败)
activity_main.xml
<ImageView
android:id="@+id/imageView"
android:layout_width="300dp"
android:layout_height="150dp"
android:src="@common/drawable/logo_image" /> <-- "Unknown reference
您可以在项目中创建一个名为 assets
或您想要的任何其他名称的模块。然后在每个需要访问公共资源的模块中,将该模块作为依赖项包含在模块 build.gradle
中
implementation project(':assets')
然后您可以像在每个模块中本地定义资产一样访问这些资产。
<ImageView
android:id="@+id/imageView"
android:layout_width="300dp"
android:layout_height="150dp"
android:src="@drawable/logo_image" />
如果您想使用模块来保留公共资源,只需将此插件添加到此模块的 build.gradle 文件中,如下所示
plugins {
id 'com.android.library'
}
或替换 com.android.application(如果它已在此处定义)
我的项目作为多个模块。本质上,将有跨多个模块使用的资源。我们称此资源为 logo_image.png
目前,在每个模块的res文件夹中,都存在logo_image.png的副本。这可能是个问题,因为它会吃掉很多 space.
我想做的是创建一个 Common 模块,它存储整个项目中使用的所有资源,并让所有引用指向该 Common 模块中的资源。这样的事情可能吗?这是我的尝试(失败)
activity_main.xml
<ImageView
android:id="@+id/imageView"
android:layout_width="300dp"
android:layout_height="150dp"
android:src="@common/drawable/logo_image" /> <-- "Unknown reference
您可以在项目中创建一个名为 assets
或您想要的任何其他名称的模块。然后在每个需要访问公共资源的模块中,将该模块作为依赖项包含在模块 build.gradle
implementation project(':assets')
然后您可以像在每个模块中本地定义资产一样访问这些资产。
<ImageView
android:id="@+id/imageView"
android:layout_width="300dp"
android:layout_height="150dp"
android:src="@drawable/logo_image" />
如果您想使用模块来保留公共资源,只需将此插件添加到此模块的 build.gradle 文件中,如下所示
plugins {
id 'com.android.library'
}
或替换 com.android.application(如果它已在此处定义)