[英]Creating multi-screen support app android
我正在Android中創建一個必須支持多個屏幕的應用程序。
為此目的,我已經閱讀了很多答案,我最喜歡的一個是,我可以通過以下名稱在res文件夾中創建不同的文件夾,
對於小屏幕布局 - 小 ,
對於大屏幕布局 - 大 ,
對於超大屏幕布局-xlarge
我必須為同名的不同屏幕創建不同的布局。 例如mylayout.xml
我必須在manifest.xml文件中放入以下代碼
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
最后我只需要在我的Activity文件中寫下以下行,
setContentView(R.layout.mylayout);
現在當我在不同尺寸的屏幕上運行這個應用程序時,它應該根據屏幕分辨率從不同的文件夾中獲取布局。
但這種情況在我的情況下並沒有發生。它只采用布局文件夾中定義的布局 。
請有人可以解釋一下為什么會發生這種情況以及如何解決這個問題,以便我的應用可以在所有尺寸的屏幕上有效運行。
嘗試像:
代替
請參考以下鏈接:
http://developer.android.com/guide/practices/screens_support.html對於不同的屏幕尺寸,以下是應用程序中的資源目錄列表,它為不同的屏幕尺寸提供不同的布局設計,並為小型,中型提供不同的位圖可繪制,高密度和超高密度屏幕。 您可以在res文件夾中使用不同大小的布局文件,並根據密度對可繪制圖像進行更改。
res/layout/my_layout.xml // layout for normal screen size ("default")
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
res / drawable-mdpi / my_icon.png //中密度res / drawable-hdpi / my_icon.png位圖//高密度res / drawable-xhdpi / my_icon.png位圖//高密度位圖
<compatible-screens>
<screen
android:screenDensity="ldpi"
android:screenSize="small" />
<screen
android:screenDensity="mdpi"
android:screenSize="normal" />
<screen
android:screenDensity="xhdpi"
android:screenSize="large" />
<screen
android:screenDensity="xhdpi"
android:screenSize="xlarge" />
</compatible-screens>
然后任何活動使用這一行..
機器人:configChanges = “方向|屏幕尺寸| keyboardHidden”
在values文件夾中,命名約定如layout-small
僅適用於api version less than 3.1
。 您應創建值為layout-sw600dp
值文件,以便api級別大於3.1。 閱讀此http://developer.android.com/guide/practices/screens_support.html3.1api
像這樣你應該為每種類型的設備創建layout-sw600dp,layout-sw720dp。 layout-sw600dp表示此布局適用於寬度最小為600dp的設備如果您有layout-600dp和layout-sw720dp文件夾。 第一個布局文件夾適用於寬度最小為600dp(7英寸平板電腦)至720dp的設備,第二個適用於寬度最小且高於720dp(10英寸平板電腦)的設備。
如果您所需的最低版本高於3.1,則不需要layout-small,layoutxLarge文件夾。 否則你必須考慮兩種類型的布局fromats。
這是一個快速清單 ,說明如何確保應用程序在不同屏幕上正確顯示:
在XML布局文件中指定維度時wrap_content, fill_parent,
請使用wrap_content, fill_parent,
或dp
單位。 不要在應用程序代碼( .java
文件)中使用硬編碼pixel
值。 不要使用AbsoluteLayout
(它在Android 1.5
已棄用)。 您應該使用RelativeLayout
,它使用相對定位來布局其子視圖。 為不同的屏幕密度提供替代位圖drawable。
花點時間閱讀這些screens_support或更好地了解Android如何找到最匹配的資源,以便您知道將資源放在何處。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.