2

我正在寻找一种算法或模式来计算可以在多个分辨率上放置对象的位置。到目前为止,我已经获得了 X 和 Y 屏幕尺寸,但我不确定如何将其转换为计算,无论屏幕尺寸如何,都可以在屏幕上的某个位置放置诸如 drawText() 之类的东西。

我在想也许使用百分比可能更容易使用。我有一个程序可以在左上角的屏幕上绘制文本,指示屏幕被触摸的位置。

当我在模拟器上运行它时,使用

drawText(信息,10,10,油漆);

它显示得很好,但是当我在我的手机(Droid 2 Global)上运行它时,文本的顶部被切断了。

简而言之:

有什么方法可以在屏幕上绘制一些东西(使用 SurfaceView),这些东西将在多个屏幕尺寸/dpi 上保持在同一个位置?

谢谢你的时间。

4

2 回答 2

1

到目前为止,这不是我所见过的完美解决方案。

我通过为特定屏幕比例(模拟器中的本机屏幕分辨率)指定特定项目的位置来遇到这个问题,然后在不同的屏幕尺寸下运行它时重新计算它的位置并放大/缩小它。

  displayXpos =  constDevelopmentScreenXpos (targetDeviceScreenHeight/constDevelopmentScreenHeight) etc..
  displayXScale = similarAlgorithm

这不是最好的,但它给你一些想法。

另外,我用背景填充一些“边缘”区域,并在目标设备 X:Y 屏幕比例与开发设备不同时选择不关心它。

高温高压

于 2011-09-17T04:41:06.057 回答
1

是的,最好用百分比计算

首先获取屏幕的总尺寸利用率,然后计算其百分比并根据计算放置控件

获取可用大小

Display mDisplay= activity.getWindowManager().getDefaultDisplay();
int width= mDisplay.getWidth();
int height= mDisplay.getHeight();
于 2011-09-17T04:53:26.123 回答