是的,我知道我可以使用DisplayMetrics
,但问题是在某些设备上widthPixels
成员的值是错误的(至少我有这样一部手机)。 setting
页面中的分辨率为720 * 1280,但widthPixels
为600,而heightPixels
中的DisplayMetrics
为1067.
此外,我已尝试getRealSize
并且返回的值正确无误。但最终我发现手机的“实际”宽度为640 (我猜高度也是一个不同的数字)。
真棒!这是怎么回事?
修改:
这里有一些数据
widthPixels
中的DisplayMetrics
为600. density
为1.6,heightPixels
为1067.
我已经尝试了所有方法,但都没有用。如果我能够轻松找到正确的答案,我不需要在这里发布我的问题。该设备为HN3-U01,中国制造
答案 0 :(得分:0)
您可以使用此代码..
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
答案 1 :(得分:0)
// Get device resolution
int width = 0;
int height = 0;
Point size = new Point();
WindowManager w = getWindowManager();
if (Build.VERSION.SDK_INT >= 13)
{
w.getDefaultDisplay().getSize(size);
width = size.x;
height = size.y;
}
else
{
Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
height = display.getHeight();
}
因为在API level 13
答案 2 :(得分:0)
试试这个
private DisplayMetrics metrics;
private int widthPixels;
private float scaleFactor;
private float widthDp;
metrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
int density= getResources().getDisplayMetrics().densityDpi;
widthPixels = metrics.widthPixels;
scaleFactor = metrics.density;
widthDp = widthPixels / scaleFactor;