Java 编写一个函数体,可以获取屏幕大小并在屏幕上相对拖动

Java 编写一个函数体,可以获取屏幕大小并在屏幕上相对拖动,java,android,function,screen-resolution,Java,Android,Function,Screen Resolution,我有很多屏幕大小不同的android设备。我想确保无论我写什么脚本,它都应该在所有android设备上绘制相同的内容,而不受屏幕大小的影响。因此,我有一个相对的方法,如下所示:- public void dragRel(int relative) { } 其中Rel=相对项,此处屏幕的宽度和高度均为“1”,位置可用1的分数表示。所以屏幕的中间总是(0.5,0.5) 如何编写一个函数体来获取屏幕大小并在屏幕上相对拖动。通常,您要做的是: 查询设备的物理尺寸 查询设备的分辨率维度 计算单个像

我有很多屏幕大小不同的android设备。我想确保无论我写什么脚本,它都应该在所有android设备上绘制相同的内容,而不受屏幕大小的影响。因此,我有一个相对的方法,如下所示:-

 public void dragRel(int relative) {

 }
其中Rel=相对项,此处屏幕的宽度和高度均为“1”,位置可用1的分数表示。所以屏幕的中间总是(0.5,0.5)


如何编写一个函数体来获取屏幕大小并在屏幕上相对拖动。

通常,您要做的是:

  • 查询设备的物理尺寸
  • 查询设备的分辨率维度
  • 计算单个像素的物理宽度和高度
  • 以物理方式定义项目的大小
  • 完成此操作后,转到绘图时,任何对象的像素尺寸将变为:
    • objPixWide=objPhysWide*像素宽度
    • objPixHigh=OBJPHYSHOW*像素高度物理
  • 如果您有这些数字,那么您的相对值就是:

    • objPixWide/屏幕分辨率宽度
    • objPixHigh/屏幕分辨率高度

    我理解你的问题,我自己也在研究这个问题,但你在这一点上尝试了什么?@trumpetlicks我还在研究。。。。我正计划添加getbounds.width();和getbounds.Height();然后研究数学公式。我很想知道你在这里得到了什么答案。我可以告诉你,单靠屏幕分辨率是不行的,你必须将屏幕分辨率与物理空间相关联。当你说你想在所有设备上看到“相同的东西”时,你的意思是你想让它看起来物理尺寸相同,只是分辨率相同,什么???它应该在所有设备上看起来相同(分辨率大小)。因此,也就是说,如果一个设备是(480*800),那么(480*800)相对而言应该等于(0.4*0.4)。@user3334957-如果我理解你想要实现的目标,我认为这对你是有效的。两个屏幕的物理尺寸可以相同,但不同的DPI和对象在一个屏幕上比另一个屏幕上小。2个屏幕的物理尺寸可能不同,但DPI相同,其中一个屏幕看起来比另一个屏幕大。我的答案是基于物理大小对对象进行规范化,以便无论屏幕大小或分辨率如何,任何对象在所有屏幕上的物理大小都相同。public void dragRel(点相对)抛出UiObjectNotFoundException{Point realCoord=new Point();realCoord.x=relative.x*getBounds().width();realCoord.y=relative.y*getBounds().height();dragPix(realCoord);}