Android - 在所有屏幕分辨率下将ImageView置于中心

6

目前,我正在使用SDK 1.5开发Android应用程序,并在HTC Hero上测试该应用程序,其固件为Android 1.5。

让我来谈谈实际问题:在应用程序中,我有一个ImageView用于显示图像(图像分辨率为320 * 480),现在ImageView在全屏幕上完美地显示图像,但是当我尝试在HTC EVO 4G上测试它时(分辨率为480 * 800),图像会被拉伸。

因此,我想要做的是在所有屏幕分辨率的手机上显示320 * 480分辨率的图像?我的意思是说,如果手机的分辨率更高(即480 * 800、480 * 854或其他),则图像应在屏幕的“中心”部分显示。

因此,在除320 * 480之外的所有屏幕分辨率中以中心方式显示图像(而不会拉伸或裁剪),我需要设置哪些属性?

1个回答

5

只需设置ImageViewscaleType属性。这里有可能的值:ImageView.ScaleType,你可能想使用CENTER

另外你还面临另一个问题:你必须提供一个hdpi图像以补充你的mdpi图像,这样你的mdpi图像不会被Android系统自动缩放到hdpi大小。在这里阅读更多信息:http://developer.android.com/guide/topics/resources/providing-resources.html

编辑:哦,我差点忘了:'drawable-mdpi'和'drawable-hdpi'文件夹仅在你至少要编译你的项目到Android 1.6时才可能存在。所以你必须将你的minSdkVersion设置为3,targetSdkVersion设置为4,并将你的图片放置在普通的'drawable'文件夹中,以便让Android 1.5跟上步伐。观看来自Google I/O 2010的这个视频以了解更多信息:Casting a wide net for all Android devices


@mreichelt,是的,我已经开发了一个1.5版本的应用程序,并且同样的应用程序在2.1版本上也能正常运行,但是在启用HTC 4G Evo的2.1版本中,图像会被拉伸,这就是我提出问题的原因。 - Paresh Mayani
@mreichelt 谢谢你的回答。我已经看过这个 IO/2010 视频,让我试试你的解决方法...我真的遇到了“不同分辨率”的问题。 - Paresh Mayani
@mreichelt,请告诉我在 mdpi 和 hdpi 中应该存储多高分辨率的图像?请告诉我。 - Paresh Mayani
@mreichelt,我已经看过那个页面,特别是看到了“表1. Android支持的设备屏幕示例”,但是从表格本身来看,我对不同尺寸图像感到困惑,所以对于hdpi/mdpi,我应该存储哪个分辨率的图像?我真的被卡住了。 - Paresh Mayani
对于高密度像素图像,它们必须比中密度像素图像大1.5倍。 - mreichelt
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接