是否应该使用Android模块或库来重用具有不同资源的片段?

时间:2015-11-01 06:50:28

标签: android android-fragments android-studio module android-library

我有一个Android片段,我想在多个应用程序中使用。片段具有用作按钮的多个图像。在每个应用程序中,我想使用一组不同的资源。例如,一个应用程序中的图像将与另一个应用程序中的图像不同,但是将在相同大小的图像之间仍然存在一对一的对应关系。

我的理解是模块是代码和资源,而普通库只是代码。如果我构建一个模块,所有与模块内部片段相关的资源,或者使用该模块的不同应用程序的图像是否可以不同?假设片段请求的所有资源文件在应用程序中可用,库方法是否可以工作?这似乎是非常差的封装,但如果资源包含在模块中,我不知道如何避免这种情况。

1 个答案:

答案 0 :(得分:1)

根据我的理解,您希望使用库项目中的片段,并希望更改特定于应用程序的图像。

如果是这种情况,请将该库片段设为abstact并强制子片段实现初始化图像视图的方法。这应该像

protected ImageView profilePicIV;

// Abstract Methods
  protected abstract initialiseProfilePic();
  protected abstract initialisePic1();
  protected abstract initialisePic2();

然后在库中扩展Fragment并实现方法。

@override<br/> protected abstract initialiseProfilePic() { profilePicIV.setImageResource(R.drawable.xxx); }

从Library片段的构造函数中调用此方法。

的问候,