android根據不同的解析度來讀取圖片

來源:互聯網
上載者:User

剛自己折騰了個小程式,用來顯示圖片,但只能在一種解析度的手機上看著比較舒服,其他解析度的手機上有的太小有的太大,經過網上的尋找資料,我自己寫了一個程式來測試。

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> 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.