[Android]屏幕自适应布局

http://www.eoeandroid.com/thread-157865-1-1.html


res目录下的文件夹有什么用?
我们可以看到在res目录下有drawable-hdpi, drawable-mdpi, drawable-ldpi, drawable-xhdpi目录。这些目录是用来存放图片的。举例来说,高精度的图片应该放在drawable-hdpi目录下。
For example, bitmaps for high-density screens should go in drawable-hdpi/ 
ldpi (low), 
mdpi (medium), 
hdpi (high), 
xhdpi (extra high)
 
在res目录下的文件说明:
res/layout/my_layout.xml                          // layout for normal screen size ("default")
res/layout-small/my_layout.xml              // layout for small screen size
res/layout-large/my_layout.xml              // layout for large screen size
res/layout-xlarge/my_layout.xml            // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml  // layout for extra large in landscape orientation
 
res/drawable-mdpi/my_icon.png                // bitmap for medium density
res/drawable-hdpi/my_icon.png                // bitmap for high density
res/drawable-xhdpi/my_icon.png              // bitmap for extra high density
 
如果要支持横屏和竖屏,应该怎么办呢?有些手机竖屏的时候布局很漂亮,横屏的时候图片就被拉长了。这时候我们就需要准备两套图片。一套是横屏的时候用,一套是竖屏的时候用。

 
横竖屏图片如何自适应?
首先在res目录下建立两个新目录。一个为drawable-port,用来存放竖屏的时候显示的图片。另外一个为drawable-land,用来存放横屏的时候显示的图片。
两个目录里的文件名保存一致,就可以了。横屏的时候自动用drawable-land里的图片,竖屏的时候自动用drawable-port里的图片了。

如何适应各种不同的分辨率?
众所周知,Android机的分辨率非常多。如果需要适应几种分辨率,就需要自己在res目录下建立多个drawable文件夹。如要适应480*640的分辨率,就建立一个目录叫drawable-640*480。如要适应800*600的,就建目录drawable-800*600.
注意:
      1.较大的数字要写在前面:比如drawable-854x480而不能写drawable-480x854.
      2.两个数字之前是小写字母x,而不是乘号。

最后还需要在AndroidManifest.xml里添加下面一段,没有这一段自适应就不能实现:

</application>

        <supports-screens
android:largeScreens= "true"
          android:normalScreens= "true"
    android:anyDensity =  "true" />

</manifest>

在</application>标签和</manifest> 标签之间添加上面那段代码。即可。

 

不同分辨率的横竖屏如何实现?

如果有两个分辨率,一个是800*480,一个是480*320,都要支持横竖屏。如何实现呢?即需要四组文件。在res下新建四个目录。

对应800*480,需要有一套横着的图片,一套竖着的图片。那么这两个文件夹名就是

drawable-land-800x480 横着的

drawable-port-800x480 竖着的

对应480*320,这两个文件夹就是:

drawable-land-480x320

drawable-port-480x320

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值