如何在Android中支持多个屏幕,而不需要为不同的屏幕密度提供不同的位图绘制功能
我需要在不同规格的多台设备上运行我的应用程序。 现在我正试图让它在两个方面发挥作用:三星Galaxy tab p100和Galaxy 7.0 plus 我现在关心的不同点是dpi,第一个设备是如何在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自动调整图像而无需复制图像?如果您希望图像在任何
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版本