快捷搜索:  www.ymwears.cn

Android自适应屏幕大小和layout布局(横屏|竖屏)

一:不合的layout

Android手机屏幕大年夜小不一,有480x320, 640x360, 800x480.如何才能让App自动适应不合的屏幕呢?

着实很简单,只必要在res目录下创建不合的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都邑写入R.java里,而系统会根据屏幕的大年夜小自己选择相宜的layout进行应用。

二:hdpi、mdpi、ldpi

在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主如果为了支持多分辨率。

drawable- hdpi、drawable- mdpi、drawable-ldpi的差别:

(1)drawable-hdpi里面寄放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)

(2)drawable-mdpi里面寄放中中分辨率的图片,如HVGA (320x480)

(3)drawable-ldpi里面寄放低分辨率的图片,如QVGA (240x320)

系统会根据机械的分辨率来分手到这几个文件夹里面去找对应的图片。

在开拓法度榜样时为了兼容不合平台不合屏幕,建议各自文件夹根据需求均寄放不合版本图片。

[i]备注:三者的解析度不一样,就像你把电脑的分辨率调低,图片会变大年夜一样,反之分辨率高,图片缩小。[/i]

屏幕偏向:

横屏竖屏自动切换:

可以在res目录下建立layout-port-800x600和layout-land两个目录,里面分手放置竖屏和横屏两种结构文件,这样在手机屏幕偏向变更的时刻系统会自动调用响应的结构文件,避免一种结构文件无法满意两种屏幕显示的问题。

不合分辨率横屏竖屏自动切换:

以800x600为例

可以在res目录下建立layout-port-800x600和layout-land-800x600两个目录

不切换:

以下步骤是网上传布的,不过我自己之前是经由过程图形化界面实现这个设置设置设备摆设摆设,算是殊途同归,有空我会把图片贴上来。

还要阐明一点:每个activity都有这个属性screenOrientation,每个activity都必要设置,可以设置为竖屏(portrait),也可以设置为无重力感应(nosensor)。

要让法度榜样界面维持一个偏向,不随手机偏向迁移转变而变更的处置惩罚法子:

在AndroidManifest.xml里面设置设置设备摆设摆设一下就可以了。加入这一行android:screenOrientation="landscape"。

例如(landscape是横向,portrait是纵向):

Java代码:

别的,android中每次屏幕的切换动会重启Activity,以是应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时刻载入设置设置设备摆设摆设,那样,进行中的游戏就不会自动重启了!

有的法度榜样得当从竖屏切换到横屏,或者反过来,这个时刻怎么办呢?可以在设置设置设备摆设摆设Activity的地方进行如下的设置设置设备摆设摆设android:screenOrientation="portrait"。这样就可以包管是竖屏老是竖屏了,或者landscape横向。

而有的法度榜样是得当横竖屏切换的。若何处置惩罚呢?首先要在设置设置设备摆设摆设Activity的时刻进行如下的设置设置设备摆设摆设:android:configChanges="keyboardHidden|orientation",别的必要重写Activity的onConfigurationChanged措施。实现要领如下,不必要做太多的内容:

@Override

public void onConfigurationChanged(Configuration newConfig) {

super.onConfigurationChanged(newConfig);

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {

// land do nothing is ok

} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {

// port do nothing is ok

}

}

您可能还会对下面的文章感兴趣: