现象

在android开发中,经常会需要替换res\drawable中的图片,打开res\layout下的文件预览布局页面发现图片已经被替换,但在模拟器或者真实机器上运行时发现该图片并没有被替换,还是使用的是原来的资源图片。

原因

在开发过程中,由于使用模拟器测试了程序,在首次运行后会将res文件夹下的图片资源文件(如drawable-hdpi、drawable-ldpi和drawable-mdpi)拷贝到bin文件夹下。在替换资源图片后,eclipse并不清楚是否有图片改变,所以会使用原来bin下的res文件夹中的资源文件进行打包,而图片用的还是第一次eclipse所拷贝进去的文件,所以当运行程序后会发现替换资源图片在程序中没起作用。

解决方法

把项目Clean一下就可以了。也可以手动删除bin目录下的res目录。

 

其它补充

Eclipse中的Android项目bin目录文件结构:

./classes/                          java文件编译出来的class文件

./dexedLibs/                     项目中引用的jar包

./res/                                资源文件,只包含图片不包含xml文件

./AndroidManifest.xml     复制自上层目录

./classes.dex                   Android系统中可以在Dalvik虚拟机上直接运行的文件格式;java源代码经过ADT的复杂编译后转换成Dex文件

./*apk                              最终生成的文件,可以直接安装到手机

./resources.ap_              资源文件打包成的中间文件

posted on 2018-03-24 10:46  追问图  阅读(764)  评论(1编辑  收藏  举报