如果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上进行测试,无论如何这应该是一个“小”设备。
提前致谢, 丽
答案 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)
答案 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;
}