我正在寻找一种算法或模式来计算对象在多种分辨率下的放置位置。到目前为止,我已经获得了 X 和 Y 屏幕尺寸,但我不确定如何将它变成一个计算,无论屏幕尺寸如何,都会在屏幕上的某个位置放置诸如 drawText() 之类的东西。
我在想也许使用百分比可能更容易处理。我有一个程序可以在左上角的屏幕上绘制文本,指示触摸屏幕的位置。
当我在模拟器上运行它时,使用
drawText(信息, 10,10, 绘画);
它显示效果很好,但是当我在我的手机 (Droid 2 Global) 上运行它时,文本的顶部被截断了。
简而言之:
有没有什么方法可以在屏幕上绘制一些东西(使用 SurfaceView),这些东西将在多个屏幕尺寸/dpi 上保持在同一个位置?
感谢您的宝贵时间。
最佳答案
到目前为止,我还没有看到完美的解决方案。
我通过为特定屏幕比例(模拟器中的 native 屏幕分辨率)指定特定项目的位置来遇到这个问题,然后重新计算它的位置并在不同屏幕尺寸下运行时放大/缩小它。
displayXpos = constDevelopmentScreenXpos (targetDeviceScreenHeight/constDevelopmentScreenHeight) etc..
displayXScale = similarAlgorithm
这不是最好的,但它给了你一些想法。
另外,我用背景填充一些“边缘地带”区域,并在目标设备 X:Y 屏幕比例与开发设备不同时选择不关心它。
HTH
关于Android 屏幕尺寸算法/模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7452412/