首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android屏幕大小算法/模式

Android屏幕大小算法/模式
EN

Stack Overflow用户
提问于 2011-09-17 12:21:47
回答 2查看 656关注 0票数 2

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

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

当我在模拟器上运行这段代码时,

drawText(info,10,10,paint);

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

简而言之:

有没有办法(使用SurfaceView)将一些东西绘制到屏幕上,并且在多个屏幕尺寸/ dpi上保持在同一位置?

耽误您时间,实在对不起。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-17 12:41:06

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

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

代码语言:javascript
运行
复制
  displayXpos =  constDevelopmentScreenXpos (targetDeviceScreenHeight/constDevelopmentScreenHeight) etc..
  displayXScale = similarAlgorithm

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

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

HTH

票数 1
EN

Stack Overflow用户

发布于 2011-09-17 12:53:26

嗯,还是用百分比计算比较好。

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

获取可用大小

代码语言:javascript
运行
复制
Display mDisplay= activity.getWindowManager().getDefaultDisplay();
int width= mDisplay.getWidth();
int height= mDisplay.getHeight();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7452412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档