2012-11-07 73 views
1

Nexus 10擁有2500 * 1600的分辨率,而同一密度系列中的上一個鄰居擁有1024 * 800 - ** DOUBLE **如何在Android上處理不同的屏幕分辨率?

我的擔心是完全在圖像上,我已經保存了x * x px,If我在Nexus中使用相同的圖像 - 它延伸?

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

回答

-1

的點通用技巧來設計佈局多個絲網

我得到了答案 -

我們甚至可以子分類提拉的使用繪圖-SW1200-xhdpi

問候 SS

1

有許多可能的方式來實現的重大的事情這是一個使用組件的大小

寬度 - 高度DP,在SP 文字大小

另一種是您可以使用佈局LDPI,佈局MDPI,佈局,華電國際,佈局xhdpi

DP和SP會解決你的問題

+0

我的擔心是完全在圖像上,我已經擁有x * x像素的圖像,如果我在Nexus中使用相同的圖像 - 它會拉伸嗎? – Sreeram

+0

您可以在寬度和高度上使用wrap_content,使用相對佈局並使您的imageview與父級(相對佈局)對齊,您可以在父級中對齊中心,左側和右側。嘗試一次 –

0

阿倫chandravanshi

在android中處理多種分辨率:

1)在android應用程序項目解剖4文件夾1)hdpi,mdpi,ldpi和xhdpi(在res文件夾中),您可以將圖像放在多個屏幕大小的設備上。系統根據設備自動從這些文件夾中選擇圖像。

2)給字體大小時使用sp而不是dp。

3)我們代替px。 4)主要是我們線性佈局和相對佈局,而不是其他佈局。

5)使用9個補丁圖像。

6)避免使用絕對佈局。

7)使用png圖像。 8)使用橫向模式的layout-land文件夾。

謝謝。

+1

我的關注是完全在圖像上,我已經擁有x * x像素的圖像,如果我在Nexus中使用相同的圖像 - 它伸展? – Sreeram

+0

永遠不會在px中使用圖像大小始終在dp中設置其屬性 –

0

可以判斷在S取決於分辨率按代碼屏幕大小,然後應用必要的代碼。例如,我需要根據不同的屏幕分辨率更改文字大小。

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;  
} 

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