在我的应用程序中,对于相对布局的背景,我有一个非常大的网格壁纸(比任何手机/桌面屏幕都大)。所以,我想知道,而不是让android调整它,让它看起来很糟糕,我可以自己调整它。我想要做的是调整图像大小(垂直和水平方向),直到图像和屏幕的高度相匹配。Android-重新调整图像以匹配屏幕的高度
感谢所有帮助appreciated- Lijap
在我的应用程序中,对于相对布局的背景,我有一个非常大的网格壁纸(比任何手机/桌面屏幕都大)。所以,我想知道,而不是让android调整它,让它看起来很糟糕,我可以自己调整它。我想要做的是调整图像大小(垂直和水平方向),直到图像和屏幕的高度相匹配。Android-重新调整图像以匹配屏幕的高度
感谢所有帮助appreciated- Lijap
这个问题的解决是什么谷歌已经投入了非常大量的精力。
基本上,您应该为每个目标尺寸/布局创建不同的尺寸。
这已在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单位,以确保在不同密度的屏幕上正确显示您的用户界面。
这样,您的用户将会看到与他们的设备大小相匹配的位图。
如果您需要帮助理解文档,或者如果这不能正确回答您的问题,请让我知道。
Pheonixblade9的答案是正确的,但如果您决定自己做一些调整大小,那么您可以实施onSizeChanged() method of the ImageView class。但请注意onSizeChanged()
方法来自Super-Class,View。
如果图像太大(特别是如果它比任何分辨率都大),则可能会出现OOM(内存不足)错误。
在这种情况下,您必须提高内存效率,并且Google已经发布了一些关于此问题的教程。
见:http://developer.android.com/training/displaying-bitmaps/index.html
使用imgview.setScaleType(ScaleType.FIT_XY); –