各种Android操作系统的手机简直就是琳琅满目,屏幕分辨率的差异可想而知。目前比较主流的有WVGA=800x480,HVGA=480x320,另外的还有QVGA=320x240。当然还有魅族M9的DVGA=960x640,还有蛋疼的摩托罗拉的FWVGA=854x480。

  其实,在你layout的xml文件中,编写的时候是不是用了许多的padding呢?如果是,那你就蛋疼了。因为这样的布局永远是无法适应所有手机屏幕的。

  正确的做法应该是使用的是weight属性。将你控件的layout中的width、height设置为fill-parent,不要使用wrap——content。因为wrap-content的大小是不固定的。而weight(权重)这个属性很好的解决了这个问题。

  当包裹在控件外面的Layout的width、height属性都设置为fill-parent时,可以利用weight的反比特性。即如果控件A设置weight为5,控件B设置weight为7,那么A所占的空间为5/(5+7),B所占的空间为7/(5+7)。这样的反比属性对任何分辨率下的手机都是合适的。

  当然,字体就不行了。那怎么保证字体能够跟布局一样能够自适应呢?
  呵呵,很简单,就是在你的res文件夹中创建一个文件夹,叫做values-320x240。其中320x240是你手机屏幕的分辨率,根据你手机屏幕的情况做不同的命名,例如values- 800x480。在该文件夹下创建一个dimens.xml文件,定义各种字体的大小。那么系统就会自动根据你手机屏幕的分辨率去调用响应的文件夹。

 另外,值得提醒的是,记得在你默认的values文件下的dimens.xml文件中也要写上相应的字体大小哦,因为当系统无法认识你手机屏幕大小的时候,它会自动去找你默认文件中的

东西,没有写的话程序会崩溃。

************************************************************分割线************************************************************

  在看下面内容之前首先请看你SDK文档中以下这篇文章

  其实google在分辨率适应性的东西已经写的很清楚了,只是我们很多人没去看而已

  以下是结论:
    屏幕分辨率:1024x600
    density:1(160)
    文件夹:values-mdpi-1024x600

    屏幕分辨率:1024x600
    density:1.5(240)
    文件夹:values-hdpi-683x400  由1024/1.5  600/1.5得到,需要四舍五入。

    屏幕分辨率:800x480
    density:1(160)
    文件夹:values-mdpi-800x480

    屏幕分辨率:800x480
    density:1.5(240)
    文件夹:values-hdpi-533x320  由800/1.5  480/1.5得到,需要四舍五入。

  以此类推
    一般情况下需要创建出values 、values-mdpi 、 values-hdpi文件夹,以备在一些没有规定的尺寸屏幕上找不到资源的情况。

    然后在里面使用不同的dimens文件,Layout中不要使用显示的数字,所有的尺寸定义全都援引dimens里面的内容。

    这样能够保证深度UI定制的情况

    另外在工程的default.properties中如果split.density=false,则分辨率适配的时候文件夹命名不需要与scale相除

  例
  屏幕分辨率:800x480
  density:1.5(240)
  文件夹:values-hdpi-800x480

************************************************************分割线************************************************************

  关于dimens

    位置:res\values
    单位:px   Pixel 以画面的像素为单位;
         in     Inches以画面的多少英寸为单位;
         mm  Millimeter以画面的多少毫米为单位;
         pt     Points 一点为1/72英寸;
         dp或dip  Density-indepentdent 为160dpi屏幕的一个pixel;
         ap Scale-independent Pixels 随屏幕尺寸改变的一个pixel;

最后总结就是要想不求人 ,英语得过关!!!

转:Android程序对不同手机屏幕分辨率自适应的总结

转载于:https://www.cnblogs.com/jiezzy/archive/2012/08/11/2633886.html

Android程序对不同手机屏幕分辨率自适应的总结相关推荐

  1. Android不同手机屏幕分辨率自适应

    有必要了解的 Android中常见的单位 dip, dp, px, sp之间的区别: dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设 ...

  2. Android不同手机屏幕分辨率自适应【转】

    有必要了解的 Android中常见的单位 dip, dp, px, sp之间的区别: dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设 ...

  3. android manifest 分辨率,android程序界面自动适应屏幕分辨率例子

    为不同分辨率的手机创建界面 1,首先进入res 文件夹下. 2,创建一个名为"layout-1024x768"文件夹, 其中1024x768 是屏幕分辨率的大小,值得注意的是分辨率 ...

  4. cocoslua与android交互,cocos2dx 获取手机屏幕分辨率 objective-c android 和 Lua 交互 向lua 传参...

    //cocos2dx 获取IOS 分辨率 然后传给Lua IOS代码: +(NSString*) getHostResolving { CGRect rect = [[UIScreen mainScr ...

  5. Android中DisplayMetrics 获取手机屏幕分辨率

    简述: Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体. //get the screen sizeDisplayMetrics ...

  6. Webview--如何让加载进来的页面自适应手机屏幕分辨率居中显示

    让Webview加载的页面居中显示有我知道的俩种方法 第一种: [java]  WebSettings settings = webView.getSettings();  settings.setL ...

  7. android开发获取手机屏幕分辨率

    android开发基础过程中获取手机屏幕分辨率用来加载不同的UI,图片等,如何获取手机屏幕分辨率? DisplayMetrics displayMetrics=new DisplayMetrics() ...

  8. Appium:获取Android设备手机屏幕分辨率

    Appium:获取Android设备的手机屏幕分辨率 使用Appium获取手机屏幕分辨率 print(driver.get_window_size()) # {'width': 1080, 'heig ...

  9. 常用各个手机屏幕分辨率归纳。iphone5/iphone7/iphone7 plus/iphoneX/Android 分辨率大小归纳

    ios,android 常用手机屏幕分辨率归纳. 针对IOS,Android 手机分辨率大小.屏幕尺寸.开发尺寸的参考. 在实际页面的开发过程,往往显示屏幕的宽度换算为像素尺寸的1/2. IOS: A ...

最新文章

  1. 缓存用不好,Bug改到老
  2. boost::geometry::point_on_surface用法的测试程序
  3. Oracle Spatial-元数据及SDO_GEOMETRY
  4. c语言输出26个英文字母的能量值,菜鸟求助,写一个随机输出26个英文字母的程序...
  5. matlab cat函数_如何用Matlab编写贪吃蛇游戏?(持续更新)
  6. 助力在线教育,阿里云推出百万专项扶持基金计划
  7. 【LeetCode】剑指 Offer 47. 礼物的最大价值
  8. 吴恩达机器学习作业3.2神经网络
  9. Linux 0.11内核分析03:系统调用
  10. Android input监控耳机插入demo
  11. UVA - 11029
  12. bootstrap-table教程演示
  13. Google 抓取工具(Googlebot)汇总
  14. 钽电容器为什么被要求降额到额定值的1/3使用
  15. 百度apollo自动驾驶modules\planning\tasks\optimizers\path_time_heuristic\PathTimeHeuristicOptimizer类代码详解
  16. 【BZOJ3991】【SDOI2015】寻宝游戏
  17. laravel+redis通过api简单实现微博登陆注册关注取消关注发布信息等
  18. 脱壳之压缩壳-FSG
  19. MAGENTO网站如何设置PAYPAL收款方式
  20. 【图片流转成图片】vue处理后端传来的图片流信息并转换成图片显示在前端页面上【详细解释】

热门文章

  1. Spring Boot : Whitelabel Error Page解决方案
  2. 在暂存区域中显示文件中的git diff [复制]
  3. 如何获取当前文件目录的完整路径?
  4. logback日志配置文件
  5. python环境变量是什么意思_python设置环境变量有什么用
  6. python虚拟环境 windows环境搭建_windows下安装Python虚拟环境virtualenvwrapper-win
  7. 文档大小超出上传限制怎么办_一键PDF转Word、PPT、图片等文档,这才是办公族必备的效率神器!...
  8. 事件对象使用方法大全(源码解析)
  9. Open3d之计算源点云与目标云的距离
  10. python保留7天备份文件