我们建好一个android 的项目后,默认的res下面 有drawable、layout、values等目录
1.drawable目录相关
启开一个新的Android专案后在res资料夹内会有
drawable-hdpidrawable-mdpi
drawable-ldpi
drawable-xhdpi
drawable-xxhdpi
三个目录,所定义的dpi皆不同
xhdpi是Android 2.2才开始增加的分类;xlarge是Android 2.3才开始增加的分类; tvdip 则是最近的事。
此外
drawable-hdpi 对应的解析度为 WVGA (480x800),FWVGA (480x854),是放高解析度的图片
drawable-mdpi 对应的解析度为 HVGA (320x480),是放中等解析度的图片
drawable-ldpi 对应的解析度为 QVGA (240x320),是放低解析度的图片
Android系统会根据机器的解析度来分辨鉴定对应到相关的资料夹找出对应的图片,什么分辨率就使用对应的drawable下的目录;
2.layout目录相关
在android中要让手机自适应不同分辨率的手机,总的来说有三种方法:
1.一种是代码实现布局
2.一种是多个layout来实现。
3.最后是使用属性layout_weight来实现自适应多个分辨率,但是确定是如果布局较复杂,实现起来比较难控制,复杂。
---------1.普通情况
这里是说res目录当然是说的使用多个layout来自适应分辨率:
其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。
----------2.设计到横屏竖屏时
屏幕方向:
横屏竖屏自动切换:
可以在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代码:
&l