android中不同手机分辨率适配问题
在项目开发的过程中,同一个布局对应不同的手机会显示出不同的效果。
导致这个现象产生的原因是不同手机的分辨率不同。
在androidsdk提供的帮助文档中,可以看到各种手机的分辨率和对应的屏大小。
QVGA(240x320),WQVGA400(240x400),WQVGA432(240x432),HVGA(320x480),WVGA800(480x800),WVGA854(480x854)。
目前android手机的分辨率大致就是帮助文档中描述的几种。
可以用两种方式进行不同手机的适配。
一种是在java代码中,另外一种是在xml文件中。
具体使用哪种方式更有效更合适,要看具体的情况而定。
在以前的项目中,之前做过关于历史聊天记录,每页显示条数的匹配。
不同的手机,每页可以显示历史记录的条数是不同的。
采用的是在java代码中做匹配。
不同分辨率的手机,他们都有固定的屏高。
例如,480x800,屏高是800。
240x320,屏高是320。
根据屏高为判定条件,为每一页显示历史记录的条数做一个限制。
个人觉得,在java代码中做手机匹配,要看匹配的布局中,控件是否太多,不太多,可以在java代码中根据不同的情况修改,否则,java代码将会显得很冗长,修改起来也很麻烦。
在xml进行手机匹配,主要是针对布局中控件太多,不方便在java代码中修改的情况。
在xml中解决不匹配问题很简单,对于不同手机的分辨率,建立对应的layout文件即可。
例如:480x800,之间建立layout-800x400,240x320,建立layout-320x240。
特别注意:大的写在前面,例如800,320,小的写在后面,例如480,240。
建立了相应的layout后,还要在不同的手机上调整布局中的控件大小和位置。