0

我正在制作一个带有动画的益智应用程序。动画在小屏幕上看起来比在大屏幕上快得多。我假设这是因为在更大的屏幕上它们移动的距离更长。

我打算根据屏幕大小更改播放速度。我 cn 以像素为单位获取屏幕尺寸有没有办法以 dpi 获取它????

4

4 回答 4

0

你的答案是:以像素为单位获取屏幕尺寸。但是,这可能无法解决您的问题。你应该检查你的动画速度,因为我很确定,这不是来自显示器的差异。您应该发布一些代码,以获得更好的帮助。希望这可以帮助。

于 2013-08-30T23:21:42.777 回答
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;
于 2013-08-31T04:30:32.563 回答
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;
于 2013-08-31T04:46:51.693 回答
0

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

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

如果您不在 Activity 中,则可以通过WINDOW_SERVICE获得默认显示:

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

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

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

参考自:如何获取屏幕尺寸

于 2013-08-31T04:21:59.933 回答