是否有可能在Android中的不同屏幕中预测UI元素的新位置?

时间:2012-09-01 00:19:12

标签: android android-layout android-ui

我一直试图找出android如何在同一个应用程序的不同屏幕上重定位UI元素。我一直在用Android 2.2的音乐播放器做一些测试: Android 2.2 music player http://www.simplehelp.net/images/android_music_windows/android_music_windows17.png

以下是不同屏幕尺寸的MediaPlaybackActivity第一个图像按钮的位置(左上角): 屏幕1(分辨率:480x800,密度:240dpi):坐标为px:345,109 屏幕2(分辨率:240x400,密度:120dpi):坐标在px:173,53 屏幕3(分辨率:320x480,密度:160dpi):坐标为px:230,46

我的问题是:在任何屏幕中给定UI元素的坐标(本例中的按钮),是否可以在其他两个屏幕上预测该元素的坐标? 我尝试从px转换为dp然后再转换为px但它不起作用(虽然已经接近),这是我尝试过的:

px:173,53中屏幕2中索引为0的图像按钮的位置 dp中屏幕2中索引为0的图像按钮的位置:230.66,70.66()(我使用此公式:px = dp *(dpi / 160),我发现here) px:346,106

中屏幕1中索引为0的图像按钮的位置

你可以看到这里非常接近,但是当使用这个相同的公式将px从屏幕1转换为屏幕3时,我得到:230,72.66,所以你可以看到 y 中的差异轴很大。我认为上方栏会影响 y 轴,但我不明白为什么会有这样的差异。

我在这里做错了什么?有没有办法预测UI元素的新位置和大小?Android如何重新定位视图?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我想我知道为什么计算失败了。我创建了一个简单的应用程序,让android自己进行缩放,然后应用公式,它工作。所以我猜我正在使用的应用程序(音乐播放器)可能会被定制为在不同的屏幕上以不同的方式显示,即使它看起来完全相同。而且由于开发人员可以针对不同的屏幕使用不同的布局,我猜问题并不像我想象的那么简单。 谢谢@aprian,您的评论帮助我找出了可能存在的问题。

相关问题