剛自己折騰了個小程式,用來顯示圖片,但只能在一種解析度的手機上看著比較舒服,其他解析度的手機上有的太小有的太大,經過網上的尋找資料,我自己寫了一個程式來測試。
android對這種情況也考慮了,它在res目錄下有三個(drawable-hdpi,drawable-mdpi,drawable-ldpi)三個子目錄。
hdpi用來存放高解析度的圖片,比如WVGA (480x800),FWVGA (480x854)。
mdpi用來存放中解析度的圖片,比如HVGA (320x480)。
ldpi用來存放低解析度的圖片,比如QVGA (240x320)。
系統會根據機器的解析度來分別到這幾個檔案夾中找對應的圖片。
我在hdpi中放的是72×72大小的圖片,在mdpi中放的是48×48大小的圖片,在ldpi中放的是36*36大小的圖片。
以下是我的xml布局檔案,主要是三個ImageView來顯示圖片。
<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />android:orientation="vertical"<br />android:layout_width="fill_parent"<br />android:layout_height="fill_parent"<br />><br /><RelativeLayout<br /> android:id="@+id/all_apps_button_cluster"<br /> android:layout_width="fill_parent"<br /> android:layout_height="56dip"<br /> android:layout_gravity="bottom|center_horizontal"<br /> android:paddingTop="2dip"<br /> ><br /> <ImageView<br /> android:id="@+id/all_apps_button"<br /> android:paddingLeft="12dip"<br /> android:paddingRight="12dip"<br /> android:layout_width="wrap_content"<br /> android:layout_height="fill_parent"<br /> android:layout_centerHorizontal="true"<br /> android:src="@drawable/all_apps_button_normal"<br /> /><br /> <ImageView<br /> android:id="@+id/hotseat_left"<br /> android:layout_width="wrap_content"<br /> android:layout_height="fill_parent"<br /> android:layout_toLeftOf="@id/all_apps_button"<br />android:layout_marginLeft="4dip"<br />android:src="@drawable/hotseat_phone_normal"<br /> /><br /> <ImageView<br /> android:id="@+id/hotseat_right"<br /> android:layout_marginRight="4dip"<br /> android:layout_width="wrap_content"<br /> android:layout_height="fill_parent"<br /> android:layout_toRightOf="@id/all_apps_button"<br /> android:src="@drawable/hotseat_browser_normal"<br /> /><br /> </RelativeLayout><br /></LinearLayout>
以下是我的AndroidManifest.xml中的代碼:
其中<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:anyDensity = "true"/>是不能省略的,我由於省略了,導致我折騰了一個上午。
<?xml version="1.0" encoding="utf-8"?><br /><manifest xmlns:android="http://schemas.android.com/apk/res/android"<br /> package="lzu.xmlTest"<br /> android:versionCode="1"<br /> android:versionName="1.0"></p><p> <application android:icon="@drawable/icon" android:label="@string/app_name"><br /> <activity android:name=".xmlTest"<br /> android:label="@string/app_name"><br /> <intent-filter><br /> <action android:name="android.intent.action.MAIN" /><br /> <category android:name="android.intent.category.LAUNCHER" /><br /> </intent-filter><br /> </activity></p><p> </application><br /> <supports-screens<br /> android:largeScreens="true"<br /> android:normalScreens="true"<br /> android:anyDensity = "true"/><br /></manifest>