[英]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.