检测Android中的屏幕尺寸

时间:2013-07-10 10:06:26

标签: android screen-size

如果Android设备的屏幕尺寸被认为是SMALL(320dp x 426dp单位),我需要在我的应用中禁用某个按钮。我目前正在使用:

if (activity.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {
    //Is small size
} else {
    //Is not small size
}

确定设备的屏幕尺寸,但这似乎永远不会进入Configuration.SCREENLAYOUT_SIZE_SMALL的条件。我做了打印输出,发现该值实际上等于Configuration.SCREENLAYOUT_SIZE_NORMAL

Alex Lockwood的回答:How do I get the ScreenSize programmatically in android是我对这个解决方案的参考,但正如J R P在他的回答中指出的那样,一切似乎都等同于我Configuration.SCREENLAYOUT_SIZE_NORMAL

如何可靠地定义设备的屏幕尺寸?我目前正在三星Galaxy S3上进行测试,无论如何这应该是一个“小”设备。

提前致谢, 丽

5 个答案:

答案 0 :(得分:4)

尝试以像素为单位显示尺寸

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.y;

更多使用此StackQuestion

答案 1 :(得分:1)

这里有两个函数可以获得屏幕尺寸W和H

    public static int getScreenSizeW(Context context) {
            int screenSizeW = 320;//default

            DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
            try {
                screenSizeW = DisplayMetrics.class.getField("widthPixels").getInt(displayMetrics);
            } catch (Exception e) {
            }

            return screenSizeW;
        }

public static int getScreenSizeH(Context context) {
            int screenSizeH = 480;//default

            DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
            try {
                screenSizeH = DisplayMetrics.class.getField("heightPixels").getInt(displayMetrics);
            } catch (Exception e) {
            }

            return screenSizeH;
        }

以及另一种获取显示尺寸的方法:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
size.x = display.getWidth();
size.y = display.getHeight();

答案 2 :(得分:1)

试试这段代码..

setTitle:

Also have a look at

答案 3 :(得分:0)

使用以下代码。

public boolean isPhone(Context activityContext) {

 if(null!=activityContext)
 {
  boolean xlarge = ((activityContext.getResources().getConfiguration().screenLayout &   Configuration.SCREENLAYOUT_SIZE_MASK) == 4);
  boolean large = ((activityContext.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE);   
  return (xlarge || large)?false:true;
 }
return false;    
}

答案 4 :(得分:0)

这是一种可用于检查您是在智能手机上运行应用程序还是在平板电脑上使用该应用程序的方法。这是100%正常运行。

public boolean isNormalOrSmallResolution() {
    boolean isNormalOrSmallResolution = false;
    if (context != null) {
        if (((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL)
                || ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL)) {
            isNormalOrSmallResolution = true;
        }
    }
    return isNormalOrSmallResolution;
}