簡體   English   中英

如何在Android上處理不同的屏幕分辨率?

[英]How to handle different screen resolutions on Android?

Nexus 10的分辨率為2500 * 1600,而同一密度系列中的前一個鄰居的分辨率為1024 * 800-**雙**

我的擔心完全在圖像上,我已經保存了x * x px的圖像,如果我在Nexus中使用相同的圖像-它會拉伸嗎?

如何處理這些類型的決議?

有很多可能的方法來實現這一目標,其中之一就是使用組件大小

寬度-以dp為單位的高度,以sp為單位的文字大小

其他是您可以使用layout-ldpi,layout-mdpi,layout-hdpi,layout-xhdpi

dp和sp將解決您的問題

http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

您應該具有替代資源,具體取決於屏幕分辨率。

例如,如果您想要超大屏幕的替代布局,則需要將替代布局放置在layout-xlarge中。 一般規則是resources_name-qualifier。 您可以在android指南中找到有關支持多種分辨率和屏幕尺寸的選項的信息: http : //developer.android.com/guide/practices/screens_support.html

阿倫·錢德拉萬史

在android中處理多種分辨率:

1)在android Application project anatomy 4文件夾中1)hdpi,mdpi,ldpi和xhdpi(在res文件夾中),您可以將圖像放置在此處以用於多個屏幕尺寸的設備。 系統會根據設備自動從這些文件夾中選擇圖像。

2)指定字體大小時,請使用sp而不是dp。

3)我們用dp代替px。

4)通常我們使用線性布局和相對布局,而不是其他布局。

5)使用9個補丁圖像。

6)避免使用絕對布局。

7)使用png圖片。

8)將layout-land文件夾用於橫向模式。

謝謝。

您可以通過代碼確定屏幕的大小,然后應用必要的代碼。 例如,我需要根據不同的屏幕分辨率更改文本大小。

public void setMainButtonTextSize(){
    if (isXLargeScreen()){
        mainButtonTextSize = 38;
        mainButtonDownTextSize = 32;
        titleTopButtonTextSize = 80;
        titleBottomButtonTextSize = 60;
        timeTextSize = 36;
        dayTextSize = 26;
        dateTextSize = 36;

    } else if (isLargeScreen()){
        mainButtonTextSize = 28;
        mainButtonDownTextSize = 22;
        titleTopButtonTextSize = 70;
        titleBottomButtonTextSize = 50;
        timeTextSize = 26;
        dayTextSize = 16;
        dateTextSize = 26;
    } else if (isNormalScreen()){
        mainButtonTextSize = 18;
        mainButtonDownTextSize = 14;
        titleTopButtonTextSize = 40;    
        titleBottomButtonTextSize = 30;
        timeTextSize = 16;
        dayTextSize = 12;
        dateTextSize = 16;
    }  else if (isSmallScreen()){
        mainButtonTextSize = 12;
        mainButtonDownTextSize = 10;
        titleTopButtonTextSize = 30;
        titleBottomButtonTextSize = 20;
        timeTextSize = 12;
        dayTextSize = 8;
        dateTextSize = 12;
    }
} 


public Boolean isLargeScreen(){
    if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {
        return true;
    } else 
        return false;       
}

public Boolean isNormalScreen(){
    if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {
        return true;
    } else 
        return false;       
}

public Boolean isSmallScreen(){
    if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {
        return true;
    } else 
        return false;       
}

public Boolean isXLargeScreen(){
    if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
        return true;
    } else 
        return false;       
}

根據返回值,我相應地更改文本大小。

該主題中的要點是設計多屏布局的通用提示,

我得到了答案-

我們甚至可以使用drawing-sw1200-xhdpi根據分辨率對可繪制對象進行分類。

關於SS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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