1

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

谢谢,感谢所有帮助-Lijap

4

3 回答 3

2

解决这个问题的方法是谷歌付出了很大的努力。

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

这在支持多个屏幕的 Google 开发指南文档中有广泛的解释(比我能给出的要好得多)

从该页面:

屏幕尺寸

实际物理尺寸,以屏幕的对角线测量。为简单起见,Android 将所有实际屏幕尺寸分为四种通用尺寸:小、普通、大和特大。

屏幕密度

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

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

方向

从用户的角度来看屏幕的方向。这是横向或纵向,这意味着屏幕的纵横比分别是宽的或高的。请注意,不仅不同的设备在默认情况下以不同的方向运行,而且当用户旋转设备时,方向可能会在运行时发生变化。

解析度

屏幕上的物理像素总数。添加对多屏幕的支持时,应用程序不能直接使用分辨率;应用程序应该只关心屏幕尺寸和密度,由通用尺寸和密度组指定。

与密度无关的像素 (dp)

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

这样,您的用户将看到与其设备尺寸相匹配的位图。

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

于 2012-05-25T20:29:40.753 回答
0

如果图像太大(特别是如果它比任何分辨率都大),您可能会收到 OOM(内存不足)错误。

在这种情况下,你必须提高内存效率,谷歌已经发布了一些关于这个问题的教程。

见:http: //developer.android.com/training/displaying-bitmaps/index.html

于 2012-05-25T20:53:23.203 回答
0

Pheonixblade9 的回答是正确的,但是如果您决定自己重新调整大小,那么您可以实现ImageView 类的 onSizeChanged() 方法。但是请注意,onSizeChanged()方法来自超类视图。

于 2012-05-25T20:47:45.987 回答