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