1

Nexus 10 拥有 2500*1600 分辨率,而同一密度系列中的前一个邻居拥有 1024*800 - ** DOUBLE **

我完全关心图像,我已经拥有 x*x px 的图像,如果我在 Nexus 中使用相同的图像 - 它会伸展吗?

如何处理这些类型的决议?

4

5 回答 5

1

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

于 2012-11-07T11:43:22.180 回答
1

有很多可能的方法来实现这一点,其中一个主要的事情是使用组件大小

width -- dp 中的高度,sp 中的文本大小

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

dp 和 sp 会解决你的问题

于 2012-11-07T11:28:19.423 回答
0

您可以通过代码确定屏幕的大小,然后应用必要的代码。例如,我需要根据不同的屏幕分辨率更改文本大小。

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

根据返回值,我相应地更改文本大小。

于 2013-09-19T20:41:52.640 回答
0

阿伦·钱德拉万希

在android中处理多种分辨率:

1) 在 android Application project anatomy 4 文件夹 1) hdpi、mdpi、ldpi 和 xhdpi(在 res 文件夹中)中,您可以将图像放在这里以用于多种屏幕尺寸的设备。系统会根据设备自动从这些文件夹中选择图像。

2) 指定字体大小时使用 sp 而不是 dp。

3) us dp 代替 px。

4)主要是我们线性布局和相对布局而不是其他布局。

5) 使用 9 个补丁图像。

6) 避免使用绝对布局。

7)使用png图像。

8) 横向模式使用 layout-land 文件夹。

谢谢。

于 2012-11-07T11:32:48.733 回答
-1

该线程中的要点是设计多屏幕布局的通用技巧-

我得到了答案——

我们甚至可以使用drawing-sw1200-xhdpi根据分辨率对drawable进行子分类

问候 SS

于 2012-11-07T13:02:07.520 回答