Era*_*ran 15 android drawable android-imageview android-library
我有两个Android应用程序具有类似的功能,但不同的drawables和布局.
我想将所有代码和资源放在库项目中,并覆盖引用该库的两个应用程序中的一些drawable和布局.
我创建了一个引用该库的应用程序.我将所有资源从库复制到应用程序并更改了一些drawable.我也改变了一些字符串资源.当我在Eclipse中的布局编辑器中查看其中一个更改的布局时,我看到了正确的重写图像.
当我启动应用程序时,我看到我在应用程序中更改的字符串资源正确显示(库字符串被应用程序的资源覆盖),但我的ImageView
s 的drawables 都取自库的资源.
我还对一些布局资源进行了更改(移动并调整了一些图像的大小).当我启动使用更改的布局的活动(源代码在库中的活动)时,我看到带有旧(库)drawable的新(应用程序)布局.
我尝试ImageView
用两种方式定义s 的drawable :
在布局xml中: android:src="@drawable/image_id"
在活动的代码中:
ImageView view = (ImageView)findViewById(R.id.viewId);
view.setImageResource(R.drawable.image_id);
Run Code Online (Sandbox Code Playgroud)在这两种情况下,我看到的图像都来自库项目的资源,而不是应用程序.
如果我无法解决这个问题,我将不得不复制这两个应用程序中的所有代码,这将是一个耻辱.
难道我做错了什么?
根据我的经验,您可以使用style和refs.xml替换库模块中的drawable资源.
首先,您需要以样式声明可绘制资源,例如
<style name="drawable_base_style">
<item name="android:src">@drawable/base</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后在应用程序(模块或项目,取决于您的IDE)中,重新定义样式
<style name="drawable_base_style_app">
<item name="android:src">@drawable/app</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并使用refs.xml指向新样式.
<item name="drawable_base_style" type="style">@style/drawable_base_style_app</item>
Run Code Online (Sandbox Code Playgroud)
然后最后一步:交叉你的手指.
Era*_*ran -1
正如我在上面的评论中所写,我通过清理项目并重新构建它们来解决我的问题。
归档时间: |
|
查看次数: |
6971 次 |
最近记录: |