在项目开发的过程中,同一个布局对应不同的手机会显示出不同的效果。导致这个现象产生的原因是不同手机的分辨率不同。在android sdk提供的帮助文档中,我们可以看到各种手机的分辨率和对应的屏大小。QVGA (240x320),WQVGA400(240x400),WQVGA432 (240x432),HVGA (320x480),WVGA800 (480x800),WVGA854 (480x854)。

  目前android手机的分辨率大致就是帮助文档中描述的几种,我们可以用两种方式进行不同手机的适配。一种是在java代码中,另外一种是在xml文件中。具体使用哪种方式更有效更合适,要看具体的情况而定。

  在xml进行手机匹配,主要是针对布局中控件太多,不方便在java代码中修改的情况。在xml中解决不匹配问题很简单,对于不同手机的分辨率,建立对应的layout文件即可。例如:480x800,之间建立layout-800x400,240x320,建立layout-320x240。特别注意:大的写在前面,例如800,320,小的写在后面,例如480,240。建立了相应的layout后,还要在不同的手机上调整布局中的控件大小和位置。

  我选择的是xml匹配方式,结果发现按上面的方式做了之后,对应分辨率的手机的显示没有任何的效果,后来,我查看帮助文档后,发现必须要在androidmainfest中进行如下代码的配置:

< supports-screensandroid:smallScreens="true"android:normalScreens="true"android:largeScreens="true"android:xlargeScreens="true"android:anyDensity="true" />

如果没有这几行代码,不管你怎么调整layout中的控件,对应分辨率的手机是没有任何效果的。注意:由于android版本的不同,有些版本不支持xlargeScreens,可以直接将android:xlargeScreens="true"去掉。

更多相关文章

  1. Android屏幕密度与UI大小显示
  2. 我的Android开发入门笔记(三):Starting Another Activity
  3. 本来想用“{{”秀一波,结果却导致了内存溢出!
  4. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  5. android和linux开源社区的分裂
  6. NDK开发 环境搭建 与 JNI的编写
  7. Android(安卓)Studio环境下连接远程服务器中的sqlserver2012数据
  8. Android中AsyncTask的使用与源码分析+3.0以前的缺陷(并发->逐一)
  9. Android之如果解决Android(安卓)studio项目里面的类名不能重命名

随机推荐

  1. MySQL 5.6.36 Windows x64位版本的安装教
  2. MySQL基础教程第一篇 mysql5.7.18安装和
  3. 浅谈MySQL event 计划任务
  4. mysql中的跨库关联查询方法
  5. MYSQL实现连续签到功能断签一天从头开始(
  6. MySQL实现创建存储过程并循环添加记录的
  7. 分享101个MySQL调试与优化技巧
  8. ubuntu下在docker中安装mysql5.6 的方法
  9. mysql中mydumper 和 mysqldump 对比使用
  10. mysql mycat 中间件安装与使用