看看Android开发者here
为不同的屏幕密度提供不同的位图可绘制对象
默认情况下,Android 会缩放您的位图可绘制对象(.png、.jpg 和 .gif
文件)和九补丁可绘制对象(.9.png 文件),以便它们在
每个设备上的适当物理尺寸。例如,如果您的
应用程序仅为基线、中等提供位图可绘制对象
屏幕密度 (mdpi),然后系统在
高密度屏幕,并在低密度时缩小它们
屏幕。这种缩放会导致位图中出现伪影。确保
你的位图看起来最好,你应该包括替代版本
不同的分辨率,不同的屏幕密度。这
可用于密度特定资源的配置限定符
分别是 ldpi(低)、mdpi(中)、hdpi(高)和 xhdpi(超高)。
例如,高密度屏幕的位图应该进入
可绘制的 hdpi/.尺寸和密度配置限定符
对应于 Range 中描述的广义尺寸和密度
支持的屏幕数,以上。
注意:如果您不熟悉配置限定符以及
系统使用它们来应用替代资源,请阅读提供
更多信息的替代资源。
在运行时,系统会确保在
任何给定资源的以下过程的当前屏幕:
系统根据大小使用适当的替代资源
和当前屏幕的密度,系统使用任何尺寸和
应用程序中提供的特定于密度的资源。例如,
如果设备具有高密度屏幕并且应用程序请求
可绘制资源,系统寻找可绘制资源目录
与设备配置最匹配。取决于对方
可用的替代资源,带有 hdpi 的资源目录
限定符(例如 drawable-hdpi/)可能是最佳匹配,因此
系统使用此目录中的可绘制资源。如果没有匹配
资源可用,系统使用默认资源并缩放
根据需要向上或向下以匹配当前的屏幕尺寸和密度
“默认”资源是那些没有标记的资源
配置限定符。例如drawable/中的资源是
默认的可绘制资源。系统假定默认
资源是针对基线屏幕尺寸和密度而设计的,这
是正常的屏幕尺寸和中等密度。如此一来,系统
为高密度屏幕向上和向下缩放默认密度资源
适用于低密度屏幕。但是,当系统
寻找特定密度的资源,但在
特定于密度的目录,它不会总是使用默认资源。
系统可以改为使用其他密度特定资源之一
为了在缩放时提供更好的结果。例如,当
寻找低密度资源但不可用,系统
更喜欢缩小资源的高密度版本,
因为该系统可以轻松地将高密度资源缩小到
低密度 0.5 倍,伪影更少,与
将中等密度资源缩放 0.75 倍。更多
有关 Android 如何通过以下方式选择替代资源的信息
将配置限定符与设备配置匹配,读取
Android 如何找到最匹配的资源。
这也可以帮助你:
您需要为不同的屏幕尺寸创建不同的布局。支持您需要创建以下布局的所有屏幕:
低密度小屏幕 QVGA 240x320 (120dpi):
layout-small-ldpi (240x320)
layout-small-land-ldpi (320x240)
低密度普通屏幕 WVGA400 240x400 (x432) (120dpi):
layout-ldpi (240 x 400 )
layout-land-ldpi (400 x 240 )
中密度普通屏幕 HVGA 320x480 (160dpi):
layout-mdpi (320 x 480 )
layout-land-mdpi (480 x 320 )
中密度大屏幕 HVGA 320x480 (160dpi):
layout-large-mdpi (320 x 480 )
layout-large-land-mdpi (480 x 320)
Galaxy Tab(240 dpi):
layout-large (600 x 1024)
layout-large-land (1024 x 600)
高密度普通屏幕 WVGA800 480x800 (x854) (240 dpi):
layout-hdpi (480 x 800)
layout-land-hdpi (800 x 480)
Xoom(中密度大,但分辨率为 1280x800 分辨率)(160 dpi):
layout-xlarge (800 x 1280)
layout-xlarge-land (1280 x 800)
还在 .manifest 文件中添加以下代码:
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
希望对你有所帮助。