簡體   English   中英

創建多屏幕支持app android

[英]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);

現在當我在不同尺寸的屏幕上運行這個應用程序時,它應該根據屏幕分辨率從不同的文件夾中獲取布局。

但這種情況在我的情況下並沒有發生。它只采用布局文件夾中定義的布局

請有人可以解釋一下為什么會發生這種情況以及如何解決這個問題,以便我的應用可以在所有尺寸的屏幕上有效運行。

嘗試像:

  • 布局sw320dp
  • 布局sw480dp
  • 布局sw600dp
  • 布局sw720dp

代替

  • 布局小,
  • 布局大等...

請參考以下鏈接:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM