今天在網上看到一個關於Splash Activity的Android帖子,博主在一通講解之后也給出了代碼。於是果斷下載下來了看看怎么實現的。一步步照着流程把這個功能實現了一遍。一切都沒有大問題,但是在gradle編譯期間提示報錯:
libpng error: Not a PNG file
從提示上看很簡潔很明了,添加的資源不屬於PNG格式的。但是我看了看資源文件夾下的文件,都是PNG格式結尾的。在網上搜了一通后在stackoverflow上發現了一個帖子說:不要光看文件名是*.png結尾的,而要看看實際格式是不是PNG格式的。怎么看呢?有一種辦法,直接用十六進制編輯器打開該文件,看看開始的幾個字符是不是".png"。如下:
另外還有一種簡單的辦法,用圖片查看器一一打開這些圖片文件,然后另存為PNG格式的文件即可。這種方法不管是不是,都重新存一遍是萬無一失的,當然工作量相對也交到。
在使用PNG圖片的過程中,可能還會遇到如下的錯誤提示:
iccp:Not recognizing known sRGB profile that has been edited
之所以會出現這種錯誤是因為,高版本的Android SDK中的打包工具AAPT升級了libpng包,該工具包對PNG格式要求非常嚴格,因此一種解決辦法是降低Compile SDK Version,使用低版本的SDK工具進行編譯打包。當然,還有其他辦法可以解決這個問題:使用圖片編輯軟件去除掉圖片中的元數據即可:
- ImageMagick
- ImageOptim