Android像素密度單位解析

Android應用程序 res/drawable-hdpi drawable-xxhdpi 顯示的不一樣html

 

對比實驗:java

建立項目後,默認在相關文件目錄中生成如下圖標:android

hdpi --> 72px佈局

mdpi --> 48pxspa

hdpi --> 96px3d

xxhdpi --> 144pxxml

實驗一: 使用ImageView裝載上述圖片htm

佈局文件以下:blog

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.spt.MainActivity" >
    <ImageView
        android:id="@+id/iv_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_blue_light" >
    </ImageView>
    <ImageView
        android:id="@+id/iv_compare"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_orange_light" >
    </ImageView>
</LinearLayout>

實驗系統現狀:屏幕dpi爲240圖片

項目現狀:

默認狀況下,會使用下述尺寸顯示上述圖片:

Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher,
                getTheme());
mIv.setImageDrawable(drawable);
mIvCompared.setImageDrawable(drawable);
Log.d(TAG, "onResume::width=" + drawable.getMinimumWidth());
Log.d(TAG, "onResume::height=" + drawable.getMinimumHeight());

輸出結果,以下:

D/MainActivity( 4333): getDisplayDemension::densityDpi=240
D/MainActivity( 4333): onResume::width=72
D/MainActivity( 4333): onResume::height=72

默認會在drawable-hdpi的目錄中查找該ic_launcher.png圖片

實驗二:對比實驗,將drawable-hdpi的目錄中的ic_launcher.png圖片刪除,保留drawable-xxhdpi目錄中的圖片

系統會使用drawable-xxhdpi目錄中的ic_launcher.png

上述實驗現象基本相同。

Android系統在使用drawable-xxhdpi目錄中的ic_launcher.png圖片時,會壓縮上述圖片。

相關文章
相關標籤/搜索