Android:有没有办法获得屏幕尺寸?

时间:2013-08-30 23:07:57

标签: android

我正在制作一个带动画的拼图应用程序。动画在小屏幕上看起来要快得多,然后在大屏幕上看起来要快得多。我假设这是因为在更大的屏幕上他们移动的距离更远。

我打算根据屏幕尺寸改变播放速度。我用pixcels获得屏幕大小有没有办法在dpi ????

中获取它

4 个答案:

答案 0 :(得分:0)

答案是:Get screen dimensions in pixels。但是,这可能无法解决您的问题。你应该检查你的动画速度,因为我很确定,它不是来自显示器的差异。您应该发布一些代码,以获得更好的帮助。希望这会有所帮助。

答案 1 :(得分:0)

如果您想要显示尺寸(以像素为单位),可以使用 getSize

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

如果您不在活动中,可以通过 WINDOW_SERVICE 获取默认显示:

WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();

在引入getSize之前(在API级别13 )之前,您可以使用现已弃用的 getWidth getHeight 方法:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();  // deprecated
int height = display.getHeight();  // deprecated

参考:How to get screen dimensions

答案 2 :(得分:0)

Display display = getWindowManager().getDefaultDisplay();

int width = display.getWidth();
int height = display.getHeight();

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

答案 3 :(得分:0)

你可以用这个:

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

您也可以将此用于英寸:

    float mXDpi;
    float mYDpi;
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    mXDpi = metrics.xdpi; 
    mYDpi = metrics.ydpi;
    float  mMetersToPixelsX = mXDpi / 0.0254f; 
    float  mMetersToPixelsY = mYDpi / 0.0254f;