2011-09-17 29 views
2

我正在寻找算法或模式来计算哪些对象可以放置在多个分辨率上。到目前为止,我已经获得了X和Y的屏幕大小,但是我不知道如何将它变成一种计算,无论屏幕大小如何,都可以在屏幕上放置诸如drawText()之类的东西。Android屏幕尺寸算法/模式

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

当我在模拟器上运行此,与

的drawText(资讯,10,10,油漆)

;

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

简而言之:

有什么办法来画东西到屏幕(使用SurfaceView),将留在同一个地方,多个屏幕尺寸/ DPI?

谢谢你的时间。

回答

1

到目前为止,这并不是完美的解决方案。

我通过指定特定屏幕比例(仿真器中原始屏幕分辨率)的特定项目的位置来解决此问题,然后重新计算其位置并在不同屏幕尺寸下运行时按比例放大/缩小。

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

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

此外,我填充一些有背景的'limbo'区域,并且在目标设备X:Y屏幕比例与开发设备不同时选择不关心它。

HTH

+0

好的,我会试一试!非常感谢 –

+0

任何解决方案工作..?是否可以接受? :S – Ewoks

1

雅,最好是用百分比来使用计算

首先得到屏幕的总大小果,然后根据计算计算就可以了,这个地方的控制比例

得到有用的大小

Display mDisplay= activity.getWindowManager().getDefaultDisplay(); 
int width= mDisplay.getWidth(); 
int height= mDisplay.getHeight(); 
+0

非常感谢您的信息。 –

+0

如果答案有效,请参阅http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –