我正在制作一个带有动画的益智应用程序。动画在小屏幕上看起来比在大屏幕上快得多。我假设这是因为在更大的屏幕上它们移动的距离更长。
我打算根据屏幕大小更改播放速度。我 cn 以像素为单位获取屏幕尺寸有没有办法以 dpi 获取它????
我正在制作一个带有动画的益智应用程序。动画在小屏幕上看起来比在大屏幕上快得多。我假设这是因为在更大的屏幕上它们移动的距离更长。
我打算根据屏幕大小更改播放速度。我 cn 以像素为单位获取屏幕尺寸有没有办法以 dpi 获取它????
你的答案是:以像素为单位获取屏幕尺寸。但是,这可能无法解决您的问题。你应该检查你的动画速度,因为我很确定,这不是来自显示器的差异。您应该发布一些代码,以获得更好的帮助。希望这可以帮助。
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;
你可以使用这个:
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;
如果您想要以像素为单位的显示尺寸,您可以使用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 中),您可以使用现在已弃用的getWidth和getHeight方法:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth(); // deprecated
int height = display.getHeight(); // deprecated
参考自:如何获取屏幕尺寸