高周波インタビュー--- drawable-xhdpiの写真をxxhdpi携帯電話に配置するとメモリはどのように変化しますか

1.最初にいくつかの基本的な概念を見てください

解像度:解像度は電話画面ですピクセル数、一般に画面の「幅×高さ」と呼ばれるAndroid電話の画面の一般的な解像度は、480×800、720×1280、1080×1920などです。720×1280は、画面の幅方向が720ピクセル、高さ方向が1280ピクセルであることを意味します。

画面サイズ:画面サイズは、携帯電話の対角線上の物理サイズで、インチ(インチ)単位です。たとえば、ある携帯電話は「5インチ大画面携帯電話」で、対角サイズ5インチ×2.54cm /インチ= 12.7cmを指します。

画面密度:1インチあたりのピクセル数であり、値が大きいほど表示が繊細になります。次に示すように、画面の対角線の長さ/画面サイズです。
ここに写真の説明を挿入

Androidフォンの標準画面密度マップは次のとおりです。

xxx-hdpiの密度値は640で、解像度は3840 * 2160です。
ここに写真の説明を挿入

2.画像​​が占めるメモリはどのように計算されますか?

最初に結論についてお話ししましょう。これは、次の状況に分けることができます。

今、写真があります幅= 450ピクセル高さ= 300ピクセル

1.リソースが携帯電話の画面密度と同じフォルダーに存在する場合、メモリ=画像の幅(ピクセル)と画像の高さ(ピクセル)、カラーフォーマットが占めるバイト数。

たとえば、お使いの携帯電話の解像度は xxhdpi、あなたは上の写真を持っています ドローアブル-xxhdpiフォルダ内の画像のカラーフォーマットはARGB-8888、つまりピクセルステーションあたり4バイトです。

画像が占めるメモリ= 450 * 300 * 4 = 540_000バイト= 527 kb

2.ファイルが電話画面の密度と同じフォルダーに存在しないが、リソースが電話画面の密度よりも大きいフォルダーに存在する場合、続行されますシュリンク対応する倍数の二乗。

xx-hdpiの密度値は480、xxx-hdpiの密度値は640です。

たとえば、お使いの携帯電話はまだです xxhdpi 、これであなたの写真が配置されます ドローアブル-xxxhdpiフォルダ

画像が占めるメモリ= 450 /(640/480)* 300 /(640/480)* 4 = 303_750バイト= 297kb

3.電話の画面密度よりも大きいフォルダーにリソースが見つからない場合は、電話の画面密度よりも小さいフォルダーを検索します。存在する場合は続行します。拡大対応する倍数の二乗。

たとえば、お使いの携帯電話はまだです xxhdpi 、これであなたの写真が配置されます ドローアブル-xhdpiフォルダ

xx-hdpiの密度値は480、x-hdpiの密度値は320です。

イメージが占めるメモリ= 400 *(480/320)* 350 *(480/320)* 4 = 1215_000バイト= 1187 kb

3、検証結果

電話があることを確認Huawei社のP40
解像度:2340×1080
画面サイズ:6.1を
計算することができ、XX-hdpiである422の画面密度。

画像サイズ:450 * 300
ここに写真の説明を挿入

検証1:電話の画面密度は、画像が配置されているフォルダの解像度と同じです。

つまり、画像はxx-hdpiディレクトリにも配置されます。

ここに写真の説明を挿入
画像の幅と高さを計算します。

        Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.a1);
        int width = bm.getWidth();
        int height = bm.getHeight();

        Log.e("ARouterMainActivity", "width = " + width + ", height = " + height);

ここに写真の説明を挿入
上記の状況を確認できます1。

検証2:ファイルが電話画面の密度と同じフォルダーに存在しないが、リソースが電話画面の密度よりも大きいフォルダーに存在する場合:

ここに写真の説明を挿入
ここに写真の説明を挿入
つまり、幅=画像の幅450 /(640/480)=337.5です。
高さ=画像の幅300 /(640/480)= 225。
この時点でのメモリ= 337.5 * 225 * 4 = 303_750バイト

ケース2でも満足です状況3確認はできません。興味がある場合は、自分で確認できます。

4.結論

  1. 電話の写真はカタログの解像度よりも小さいです。メモリの写真を共有すると、電話の密度/時間の正方形のディレクトリに対応する画像の密度拡大されます。
  2. 携帯電話のディレクトリよりも大きな画像の解像度では、メモリの画像を共有すると、ディレクトリの密度/平方倍の携帯電話の密度に対応する画像減少します。
  3. 等しい場合:画像の幅に等しい*画像の高さ*カラーフォーマットに対応するバイト数

おすすめ

転載: blog.csdn.net/zhujiangtaotaise/article/details/112907477