如何在Android上处理不同的屏幕分辨率?
Nexus 10拥有2500*1600分辨率,而同一密度系列中的前一个邻居拥有1024*800-**双分辨率**如何在Android上处理不同的屏幕分辨率?,android,Android,Nexus 10拥有2500*1600分辨率,而同一密度系列中的前一个邻居拥有1024*800-**双分辨率** 我关心的完全是图像,我已经持有x*x px的图像,如果我在Nexus中使用相同的图像-它会拉伸吗 如何处理这些类型的分辨率?有许多可能的方法来实现这一点,其中一个主要的方法是使用组件大小 宽度——以dp为单位的高度, sp中的文本大小 另一个是可以使用布局ldpi、布局mdpi、布局hdpi、布局xhdpi dp和sp将解决您的问题有许多可能的方法来实现这一点,其中一个主要的方法是使
我关心的完全是图像,我已经持有x*x px的图像,如果我在Nexus中使用相同的图像-它会拉伸吗
如何处理这些类型的分辨率?有许多可能的方法来实现这一点,其中一个主要的方法是使用组件大小 宽度——以dp为单位的高度, sp中的文本大小 另一个是可以使用布局ldpi、布局mdpi、布局hdpi、布局xhdpi
dp和sp将解决您的问题有许多可能的方法来实现这一点,其中一个主要的方法是使用组件大小 宽度——以dp为单位的高度, sp中的文本大小 另一个是可以使用布局ldpi、布局mdpi、布局hdpi、布局xhdpi dp和sp将解决您的问题Arun chandravanshi 在android中处理多个分辨率: 1) 在android应用程序项目解剖4文件夹1)hdpi、mdpi、ldpi和xhdpi(在res文件夹中)中,您可以将图像放在多屏幕大小的设备上。系统会根据设备自动从这些文件夹中选择图像 2) 给出字体大小时,使用sp而不是dp 3) 美国dp代替px 4) 主要是美国线性布局和相对布局,而不是其他布局 5) 使用9个补丁图像 6) 避免使用绝对布局 7) 使用png图像 8) 将布局用地文件夹用于横向模式 谢谢。Arun chandravanshi 在android中处理多个分辨率: 1) 在android应用程序项目解剖4文件夹1)hdpi、mdpi、ldpi和xhdpi(在res文件夹中)中,您可以将图像放在多屏幕大小的设备上。系统会根据设备自动从这些文件夹中选择图像 2) 给出字体大小时,使用sp而不是dp 3) 美国dp代替px 4) 主要是美国线性布局和相对布局,而不是其他布局 5) 使用9个补丁图像 6) 避免使用绝对布局 7) 使用png图像 8) 将布局用地文件夹用于横向模式 谢谢。 根据屏幕分辨率,您应该有其他资源
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;
}
例如,如果您想要超大屏幕的替代布局,则需要将替代布局放置在layout xlarge中。一般规则是资源\名称限定符。您可以在android指南中找到支持多种分辨率和屏幕大小的选项:
根据屏幕分辨率,您应该有其他资源
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;
}
例如,如果您想要超大屏幕的替代布局,则需要将替代布局放置在layout xlarge中。一般规则是资源\名称限定符。您可以在android指南中找到支持多分辨率和屏幕大小的选项:此线程中的要点是设计多屏幕布局的一般提示- 我得到了答案- 我们甚至可以使用drawing-sw1200-xhdpi根据分辨率对可绘制图像进行细分 问候
SS此线程中的要点是设计多屏幕布局的一般提示- 我得到了答案- 我们甚至可以使用drawing-sw1200-xhdpi根据分辨率对可绘制图像进行细分 问候
SS您可以通过代码确定屏幕大小,然后应用必要的代码。例如,我需要根据不同的屏幕分辨率更改文本大小
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;
}
根据返回值,我会相应地更改文本大小。您可以通过代码确定屏幕大小,然后应用必要的代码。例如,我需要根据不同的屏幕分辨率更改文本大小
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;
}
根据返回值,我会相应地更改文本大小。我的关注点完全在图像上,我已经持有x*x px的图像,如果我在Nexus中使用相同的图像-它会拉伸?永远不要在px中使用图像大小始终在DPI中设置其属性我的关注点完全在图像上,我已经持有x*x px的图像,如果我在Nexus中使用相同的图像-它会拉伸?永远不要在px中使用图像大小始终在DPM中设置其属性我关心的是完全在图像上,我已经保存了x*x px的图像,如果我在Nexus中使用相同的图像-它会拉伸?你可以在宽度和高度上使用wrap_内容,使用相对布局并在父级上保持imageview对齐(相对布局),可以在父对象中对齐中心、左、右。试一下我的关注点完全是图像,我已经持有x*x px的图像,如果我在Nexus中使用相同的图像-它会拉伸?你可以在宽度和高度上使用wrap_内容,使用相对布局并使你的imageview在父级上对齐(相对布局),你可以在父级上对齐中心、左侧和右侧。试一下