我正在寻找一种算法或模式来计算对象可以在多个分辨率上放置的位置。到目前为止,我已经得到了X和Y屏幕大小,但我不确定如何将其转换为计算,以便在屏幕上的某个位置放置诸如drawText()之类的内容,而不管屏幕大小如何。
我在想,也许使用百分比可能更容易处理。我有一个程序,可以在屏幕左上角绘制文本,指示屏幕被触摸的位置。
当我在模拟器上运行这段代码时,
drawText(info,10,10,paint);
它显示得很棒,但当我在我的手机上运行它(Droid2 Global)时,文本的顶部被切断了。
简而言之:
有没有办法(使用SurfaceView)将一些东西绘制到屏幕上,并且在多个屏幕尺寸/ dpi上保持在同一位置?
耽误您时间,实在对不起。
发布于 2011-09-17 12:41:06
到目前为止,这还不是我所见过的完美解决方案。
我遇到了这个问题,我为特定的屏幕比例(模拟器中的本地屏幕分辨率)指定了特定项的位置,然后在不同的屏幕尺寸下运行它时重新计算它的位置并放大/缩小它。
displayXpos = constDevelopmentScreenXpos (targetDeviceScreenHeight/constDevelopmentScreenHeight) etc..
displayXScale = similarAlgorithm这不是最好的,但它给了你一些想法。
另外,我用背景填充一些“边缘”区域,当目标设备的X:Y屏幕比例与开发设备不同时,我选择不关心它。
HTH
发布于 2011-09-17 12:53:26
嗯,还是用百分比计算比较好。
首先得到屏幕的总尺寸利用率,然后计算屏幕上的百分比,并根据计算放置控件
获取可用大小
Display mDisplay= activity.getWindowManager().getDefaultDisplay();
int width= mDisplay.getWidth();
int height= mDisplay.getHeight();https://stackoverflow.com/questions/7452412
复制相似问题