android app 适应不同大小屏幕_移动APP测试:Android屏幕适配问题二

fa37bfaf21bc404e6569de77a21255ed.png

设计选择性的布局和图片,替代资源的类型,取决于应用程序的需求。通常,应该使用尺寸和方向限定符提供选择性的布局资源,使用密度限定符提供选择性的图片资源。以下部分分别概括了该如何使用尺寸和密度限定符提供选择性的布局和图片。

48b07c20a212301f38d4fa2f47ba143a.png

选择性的布局,应该确保应用程序的布局:

· 适合在小屏幕上(确保可以实际使用)

· 在大屏幕上,确保充分利用额外的屏幕空间

· 适应竖屏和横屏

如果用户界面,需要让位图来适应视图的大小(如一个按钮的背景图片),应该使用Nine-Patch 位图文件。Nine-Patch文件基本上是一个PNG文件它可以在特定的二维地区伸展。当系统需要拉伸位图所在的视图时,系统会拉伸Nine-Patch文件,但是仅仅拉伸的是指定区域。正因为如此,不需要提供不同的屏幕尺寸不同的图片,因为Nine-Patch的位图,可以调整到任何尺寸。然而,应该为不同的屏幕密提供不同的Nine-Patch文件。

选择性的图片

gif;base64,R0lGODlhAQABAIAAAP

Figure 4. 支持各密度的位图的相对大小

几乎每个应用程序都应当为不同的屏幕密度提供图片资源,因为几乎每一个应用程序都拥有一个启动图标,而改图标应当在不同密度的屏幕上显示良好。

注: 只需提供密度相关的位图文件(.png, .jpg, 或者 .gif) 和 Nine-Path 文件(.9.png)。如果需要使用XML来定义形状,颜色或者可绘制的资源,应当在默认的drawable 目录备份一份。

要创建不同密度的选择性的图片,应该在四个广义密度之间遵循3:4:6:8的缩放比例。比如,一个中密度下为48x48像素的位图(应用程序启动图标),与之对应的所有不同的尺寸应当是:

· 低密度为36x36

· 中密度为48x48

· 高密度为72x72

· 超高密度为96x96

配置实例

为了您针对不同类型的设备进行设计,这里是典型的屏幕宽度的一些数字:

· 320dp: 一个典型的手机屏幕 (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, 等).

· 480dp: 像Streak一样的中立平板屏幕 (480x800 mdpi).

· 600dp: 7”平板 (600x1024 mdpi).

· 720dp: 10”平板 (720x1280 mdpi, 800x1280 mdpi, 等).

使用表2中的尺寸限定符,应用程序可以使用任何您想要的宽度和/或高度为手机和平板之间切换不同的布局资源。比如,如果600dp是平板布局所支持的最小可用宽度,可以提供这两套布局:

res/layout/main_activity.xml           # For handsets

res/layout-sw600dp/main_activity.xml   # For tablets

在这种情况下,为了让平板布局实用,可用屏幕空间的最小宽度必须为600dp。

要进一步定制UI区分大小,如7“和10”平板的情况下,可以定义额外的最小宽度布局:

res/layout/main_activity.xml

res/layout-sw600dp/main_activity.xml

res/layout-sw720dp/main_activity.xml

注意,前面的两个例子资源使用“最小宽度”限定符,swdp,它指定屏幕两边的最小值,无论设备的当前方向。因此,使用swdp是简单的通过忽略屏幕方向的方式来指定布局的整体屏幕尺寸。

然而,在某些情况下,可能重要的是布局究竟有多大的宽度或高度目前是可用的。例如,有两个并排的布局,每当屏幕宽度至少提供600dp时使用,不论设备是否是在横向或纵向。在这种情况下,资源看起来像这样:

res/layout/main_activity.xml

res/layout-w600dp/main_activity.xml

请注意,第二组使用“可用宽度”限定符,wdp。这样,一台设备可能根据屏幕的方向会使用这两种布局(如果可用宽度在一个方向至少600dp而在另一个方向小于600dp)。

如果关注的是可用高度,那么同样可以使用hdp限定符。甚至可以结合使用wdp 和 hdp 限定符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值