Android一些关于分辨率和布局的设置

一、Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不一样的屏幕呢? drawable- hdpi、drawable- mdpi、drawable-ldpi的区别: 
html

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

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

(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320) 测试的时候能够设定模拟器的分辨率知道了手机屏幕手机大小的分类之后,就开始着手设计本身的程序: windows

(a) 配置manifest 文档位置android-sdk-windows/docs/guide/topics/manifest/supports-screens-element.html,能够查看Multiple Screens Support.的设置,在manifest 中,加入supports-screens标签支持多种屏幕显示:ide

1
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
3     <supports-screens android:largescreens="true" 
4         android:normalscreens="true" 
5         android:smallscreens="true" 
6         android:resizable="true" 
7         android:anydensity="true">
8     </supports-screens>
9 </manifest>

(b)建立本身的layout 系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。 还要在res目录下建立不一样的layout文件夹,好比layout-640x360,layout-800x480,全部的layout文件在编译以后都会写入R.java里,而系统会根据屏幕的大小本身选择合适的layout进行使用。 在个人项目里建立的是layout-large,(注意!这里有个插曲,我建立好layout-large之后发现使用800.480的屏幕仍是调用默认的layout,最后才发现layout-large里面所用的资源,必定要放入drawable-hdpi里面) 布局

二、重力感应设置:常规的显示为HVGA-P(port),即分辨率为320x480若是使用横屏(land)。若是模拟器还没有启动,能够在Eclipse的项目Run as=>Open Run Dialog对话框中设置,若是android模拟器已经启动后,可使用快捷键F12或Ctrl+F11来切换。测试

三、布局问题:若是不想让软件在横竖屏之间切换,最简单的办法就是在项目的 AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有如下几个参数: "unspecified" 默认值 由系统来判断显示方向.断定的策略是和设备相关的,因此不一样的设备会有不一样的显示方向. "landscape" 横屏显示(宽比高要长) "portrait" 竖屏显示(高比宽要长) "user" 用户当前首选的方向 "behind" 和该Activity下面的那个Activity的方向一致(在Activity堆栈中的) "sensor" 有物理的感应器来决定。若是用户旋转设备这屏幕会横竖屏切换。 "nosensor" 忽略物理感应器,这样就不会随着用户旋转设备而更改了 ( "unspecified"设置除外 )。 ui

有的多是程序设置的问题,若是想要屏幕保持竖屏,只设置android:screenOrientation,程序就回自动关闭。这时候能够经过设置android:configChanges="orientation|keyboardHidden" 来解决,activity的具体属性,能够参考andriod doc: /android-sdk-windows/docs/guide/topics/manifest/activity-element.html spa

相关文章
相关标签/搜索