0

我想要一个启动画面,就像一张完整的图片,它不会在不同的智能手机屏幕上裁剪高度或宽度。

现在我用 实现了启动画面android:scaleType="fitXY",但是现在图像在顶部或底部被裁剪,或者如果设备屏幕尺寸更改为另一个纵横比,它会在左右裁剪。

我需要做什么?我已经阅读了 android 开发者文章Supporting Multiple Screens,但我不明白如何实现这一点。

屏幕中间的简单图片很容易得到,但是填满屏幕的图片很难得到。你能帮我吗?

4

4 回答 4

3

你应该center_crop按照这个目的使用。从文档

均匀缩放图像(保持图像的纵横比),使图像的两个尺寸(宽度和高度)都等于或大于视图的相应尺寸(减去填充)。

于 2013-10-18T09:48:42.703 回答
1

当应用程序部署在不同的屏幕尺寸时,没有办法创建一个单一的资产并期望它不会被裁剪并且不会创建黑色区域。

android 平台旨在动态处理任何制造商可以随时更改的多种屏幕尺寸,包括您尚未考虑过的新分辨率。

Android 可以为您的资源将落入的屏幕高度/宽度类别指定最小值,但这些都是通用的。

为了使用它们,您必须在您的可绘制对象中指定限定符并为每个限定符创建不同的启动画面,例如,如果您使用 drawable-w420dp,当屏幕的最小宽度为420dp(注意不是像素)

所以你有两个选择:

  1. 您可以使用一个单独的初始图像,并足够灵活地设计该图像的边距,以应对在某些情况下被裁剪的图像。您可以在您的 ImageView 中使用不同的 scaleTypes 并将本网站http://etcodehome.blogspot.co.uk/2011/05/android-imageview-scaletype-samples.html作为参考,即使如前所述,“center-作物”将是你最好的镜头。

  2. 您可以以编程方式将特定图像用于特定分辨率。2.1 放入 assets 目录,所有你想要使用的特定分辨率或宽高比的启动图像 2.1 获取设备的屏幕尺寸获取屏幕尺寸(以像素为单位) 2.2 现在你可以从资产加载你想要动态的图像

于 2013-10-18T10:13:00.483 回答
0

使用下面的代码

android:layout_width="match_parent"
android:layout_height="match_parent"

这将填满整个屏幕。

于 2013-10-18T10:11:21.880 回答
0

尝试使用图像的宽度和高度来“match_parent”

于 2013-10-18T10:12:30.700 回答