android各目录大小,Android 基础篇 — 放不同drawable文件夹中图片的大小
我們接著上篇文章Android 基礎篇 — 不同DPI取哪個本地文件夾中的資源
講,文末尾提到一個問題,為什么不同drawable文件夾中的圖片大小在終端設備會不一樣?
1 準備
在drawable-xhdpi文件夾中放入一張550 x 550的圖片pic2,然后運行。老規矩,我們先上測試代碼:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic2);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
LogUtils.d("memory 1: " + bitmap.getAllocationByteCount());
} else {
LogUtils.d("memory 2: " + bitmap.getByteCount());
}
LogUtils.d("height: " + bitmap.getHeight());
LogUtils.d("width: " + bitmap.getWidth());
輸出日志如下:
memory 1: 2286144
height: 756
width: 756
我使用的測試機信息如下:
density: 2.75
densityDpi: 440
2 問題
那么問題來了,為什么圖片的寬高會變成756呢?回憶一下,xhdpi文件夾對應的density值為2,既然和手機2.75的值不完全匹配,猜測有可能會等比例縮放。
由此得出以下計算內容:
手機density / drawable文件夾density = 圖片最終大小 / 圖片原始大小
得出以下內容:
2.75 / 2 * 550 = 756.25 ≈ 756
為了驗證想法,我們再將圖片放至其他drawable文件夾中試試看,比如放入xxhdpi(dpi=3)中:
memory 1: 1016064
height: 504
width: 504
2.75 / 3 * 550 = 504.166666667
果然和猜測的是一樣。
最后又拋出一個問題:那資源圖片到底應該放入哪個文件夾中最合適呢?
3 結論
圖片最終大小 = 手機density / drawable文件夾density * 圖片原始大小
總結
以上是生活随笔為你收集整理的android各目录大小,Android 基础篇 — 放不同drawable文件夹中图片的大小的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux tac sed,Day08
- 下一篇: android webview 设置文字