2012-05-25 26 views
1

在我的应用程序中,对于相对布局的背景,我有一个非常大的网格壁纸(比任何手机/桌面屏幕都大)。所以,我想知道,而不是让android调整它,让它看起来很糟糕,我可以自己调整它。我想要做的是调整图像大小(垂直和水平方向),直到图像和屏幕的高度相匹配。Android-重新调整图像以匹配屏幕的高度

感谢所有帮助appreciated- Lijap

+0

使用imgview.setScaleType(ScaleType.FIT_XY); –

回答

2

这个问题的解决是什么谷歌已经投入了非常大量的精力。

基本上,您应该为每个目标尺寸/布局创建不同的尺寸。

这已在Google Dev Guide documents for Supporting Multiple Screens

广泛的解释(好多比我能给)在这个页面:

屏幕尺寸

实际物理尺寸,在屏幕的对角线测量。 为简单起见,Android会将所有实际屏幕尺寸分为四种广义尺寸:小尺寸,普通尺寸,大尺寸和超大尺寸。

屏幕密度

屏幕的物理区域内的像素的数量;通常称为dpi(每英寸点数)。

例如,与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域内具有更少的像素。 为了简单起见,Android将所有实际屏幕密度分为四种广义密度:低,中,高和超高。

方向

但从用户的角度,屏幕的方向。这是横向或纵向,这意味着屏幕的宽高比分别为宽或高。请注意,不同的设备默认情况下在不同的方向上运行,但是当用户旋转设备时,方向会在运行时更改。

分辨率

在屏幕上的物理像素的总数。当添加对多个屏幕的支持时,应用程序不会直接使用解决方案;应用程序应仅关注屏幕大小和密度,如广义大小和密度组所指定。

密度独立像素(DP)

定义UI布局时,你应该使用来表达布局尺寸或位置的密度无关的方式的虚拟像素。 与密度无关的像素相当于160 dpi屏幕上的一个物理像素,这是系统为“中等”密度屏幕假设的基准密度。在运行时,系统根据使用的屏幕的实际密度,根据需要透明地处理dp单位的任何缩放比例。将dp单位转换为屏幕像素很简单:px = dp *(dpi/160)。例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。定义应用程序的用户界面时,应始终使用dp单位,以确保在不同密度的屏幕上正确显示您的用户界面。

这样,您的用户将会看到与他们的设备大小相匹配的位图。

如果您需要帮助理解文档,或者如果这不能正确回答您的问题,请让我知道。

+0

所以..通过我看到这一点:xlarge屏幕至少960dp x 720dp 大屏幕至少640dp x 480dp 正常屏幕至少470dp x 320dp 小屏幕至少426dp x 320dp所以这意味着对于ldpi等我应该使图像的这些决议 – Lijap

+0

是的,这是正确的。所以你想为你想要定位的每个尺寸创建单独的位图。这将允许您对模拟器中的每个设备或具有该布局的设备进行测试。\ – Codeman

+0

好的,谢谢!但是,既然它说“至少”我应该让图像更大一点? – Lijap

相关问题