現象 在android開發中,經常會需要替換res\drawable中的圖片,打開res\layout下的文件預覽佈局頁面發現圖片已經被替換,但在模擬器或者真實機器上運行時發現該圖片並沒有被替換,還是使用的是原來的資源圖片。 原因 在開發過程中,由於使用模擬器測試了程式,在首次運行後會將res文件夾 ...
現象
在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_ 資源文件打包成的中間文件