android – 屏幕尺寸计算不正确

android – 屏幕尺寸计算不正确,第1张

概述我最近一直试图使用与臭名昭着的LunarLander类似的方法来实现我的第一个 Android游戏.我在没有游戏引擎的帮助下自己渲染图形,这似乎是迄今为止最努力的部分. 问题 我正在确定屏幕的宽度,并将该信息转发到算法中,该算法确定在给定宽度和一些其他边距值的情况下可以水平渲染的最大图像数量(请参阅下面的calculateMaxBeadsInWidth()).但是,数学似乎与算法计算的值不匹配.基 我最近一直试图使用与臭名昭着的LunarLander类似的方法来实现我的第一个 Android游戏.我在没有游戏引擎的帮助下自己渲染图形,这似乎是迄今为止最努力的部分.

问题

我正在确定屏幕的宽度,并将该信息转发到算法中,该算法确定在给定宽度和一些其他边距值的情况下可以水平渲染的最大图像数量(请参阅下面的calculateMaxBeadsInWIDth()).但是,数学似乎与算法计算的值不匹配.基本上,确定只能显示X量的图像,而实际上X 2图像可以容易地显示在屏幕上.

计算

我解析了许多调试输出,显示屏幕的实际宽度为800像素,图像宽度为44像素.因此,假设边距为100像素(最左边50像素,最右边50像素),则可以使用700像素.现在,楼层(700/44)= 15,因此仅显示15个图像.但是有更多的空间(见图片)!

代码

我的算法:

private int calculateMaxBeadsInWIDth() {    float eff_wIDth = screenWIDth - (BOARD_margin_HORIZONTAL * 2);    return (int) (eff_wIDth / bead_wIDth);}

请注意,BOARD_margin_HORIZONTAL的值为50.0f.

一些图片

这是我的算法产生的:

但是,正如您所看到的那样,很明显您可以轻松地在线的末端(右侧)放置至少2个珠子.例如,这张图片显示了当我将一行中的珠子数量硬编码为比算法产生的数量多两个时会发生什么:

这是带有红线详细边距的图像.如你所见,仍然有足够的空间:

补充信息

我正在Google Nexus 7上测试此应用程序.

我正在使用getResources().getdisplayMetrics().wIDthPixels;获得屏幕的宽度.也许问题出在这里?

我的问题

我在这里没有考虑到一些影响结果的分辨率值吗?为什么计算得如此不准确?

如果您需要更多信息我很乐意提供,任何帮助将非常感激!

解决方法 你的利润是错误的价值.您上传了全尺寸图像,但如果您绘制@ 50px和750px的垂直线,它们会与绘图区域相交.因此,您要么在计算中使用错误的值,要么在其他地方使用应该是保证金的值. 总结

以上是内存溢出为你收集整理的android – 屏幕尺寸计算不正确全部内容,希望文章能够帮你解决android – 屏幕尺寸计算不正确所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1126843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存