如何在Android中支持多个屏幕,而不需要为不同的屏幕密度提供不同的位图绘制功能

如何在Android中支持多个屏幕,而不需要为不同的屏幕密度提供不同的位图绘制功能,android,Android,我需要在不同规格的多台设备上运行我的应用程序。 现在我正试图让它在两个方面发挥作用:三星Galaxy tab p100和Galaxy 7.0 plus 我现在关心的不同点是dpi,第一个设备是240 dpi,第二个是170,第一个运行的版本是2.2,后来是3.2 首先,我将图像放在hdpi文件夹中。7.0 plus上的图像较小且丑陋,因此我将它们复制到mdpi文件夹中,效果良好,但这将使我的APK的大小增加一倍。 是否有任何方法可以使android自动调整图像而无需复制图像?如果您希望图像在任何

我需要在不同规格的多台设备上运行我的应用程序。 现在我正试图让它在两个方面发挥作用:三星Galaxy tab p100和Galaxy 7.0 plus 我现在关心的不同点是dpi,第一个设备是
240 dpi
,第二个是
170
,第一个运行的版本是2.2,后来是3.2 首先,我将图像放在
hdpi
文件夹中。7.0 plus上的图像较小且丑陋,因此我将它们复制到
mdpi
文件夹中,效果良好,但这将使我的APK的大小增加一倍。
是否有任何方法可以使android自动调整图像而无需复制图像?

如果您希望图像在任何一台设备上看起来都很好,则必须以不同的分辨率为
mdpi
hpdi
提供相同的图像(请参阅)

然而,如果您将所有图像仅放在
mdpi
目录中,Android将缩放
hpdi
屏幕的主题。还请记住,您必须对所有维度使用
dp
,而不是
px
(请参阅)

您还可以对Android如何预缩放和自动缩放资源感兴趣(请参阅)。如果要强制自动缩放,可以在
AndroidManifest.xml
中添加此行:

<supports-screens android:anyDensity="false"/>

如果您想让图像在任何一台设备上看起来都很好,您必须以不同的分辨率为
mdpi
hpdi
提供相同的图像(请参阅)

然而,如果您将所有图像仅放在
mdpi
目录中,Android将缩放
hpdi
屏幕的主题。还请记住,您必须对所有维度使用
dp
,而不是
px
(请参阅)

您还可以对Android如何预缩放和自动缩放资源感兴趣(请参阅)。如果要强制自动缩放,可以在
AndroidManifest.xml
中添加此行:

<supports-screens android:anyDensity="false"/>


我确实将所有内容都放在了mdpi文件夹中,但在240设备上输出不好。我依赖于相对布局,很少明确设置尺寸。这很正常,如果您只想提供一个图像资源,其分辨率必须为
hdpi
可接受,如果您将其放在
mdpi
文件夹中,系统也会缩小您的资产规模-如果您将所有最高分辨率的资源放在xhdpi中,Android将在mdpi和hdpi设备上缩小它们的比例-只要资源在缩小时仍能工作,这通常是好的-例如,一些图标可能需要重新制作,因为它们在缩小时不清晰,在这种情况下,您提供了该assetI的mdpi和hdpi版本,它确实将所有内容都放在了mdpi文件夹中,但在240设备上输出不正确。我依赖于相对布局,很少明确设置尺寸。这很正常,如果您只想提供一个图像资源,其分辨率必须为
hdpi
可接受,如果您将其放在
mdpi
文件夹中,系统也会缩小您的资产规模-如果您将所有最高分辨率的资源放在xhdpi中,Android将在mdpi和hdpi设备上对其进行缩放-只要资源在缩放时工作,这通常是可以的-例如,一些图标可能需要重新制作,因为它们在缩小时不清晰,在这种情况下,您提供该资产的mdpi和hdpi版本