zoukankan      html  css  js  c++  java
  • android studio 怎么做屏幕适配?

    一、关于布局适配建议
    1、不要使用绝对布局
    2、尽量使用match_parent 而不是fill_parent 。
    3、能够使用权重的地方尽量使用权重(android:layout_weight)
    4、如果是纯色背景,尽量使用android的shape 自定义。
    5、如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。比如要适配1080*1800的屏幕(魅族MX3采用此分辨率)则新建layout-1800x1080.xml的文件夹,然后在下面定义布局。Android系统会优先查找分辨率相同的布局,如果不存在则换使用默认的layout下的布局。

    二、术语和概念
    四种屏幕尺寸分类:: small, normal, large, and xlarge
    四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)
    需要注意的是: xhdpi是从 Android 2.2 (API Level 8)才开始增加的分类.
    xlarge是从Android 2.3 (API Level 9)才开始增加的分类.
    DPI是“dot per inch”的缩写,每英寸像素数。
    一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。

    三、如何做到自适应屏幕大小呢?
    1)界面布局方面
    需要根据物理尺寸的大小准备5套布局,layout(放一些通用布局xml文件,比如界面中顶部和底部的布局,不会随着屏幕大小变化,类似windos窗口的title bar),layout-small(屏幕尺寸小于3英寸左右的布局),layout-normal(屏幕尺寸小于4.5英寸左右),layout-large(4英寸-7英寸之间),layout-xlarge(7-10英寸之间)
    2)图片资源方面
    需要根据dpi值准备5套图片资源,drawable,drawalbe-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi
    Android有个自动匹配机制去选择对应的布局和图片资源

    四、两种获取屏幕分辨率信息的方法:
    DisplayMetrics metrics = new DisplayMetrics();
    Display display = activity.getWindowManager().getDefaultDisplay();
    display.getMetrics(metrics);
    //这里得到的像素值是设备独立像素dp
    //DisplayMetrics metrics=activity.getResources().getDisplayMetrics(); 这样获得的参数信息不正确,不要使用这种方式。
    不能使用android.content.res.Resources.getSystem().getDisplayMetrics()。这个得到的宽和高是空的。
  • 相关阅读:
    我喜欢的女孩有了男友 :(
    两个月后,我又回来了。
    准备辞职,想看看老板知道我要辞职之后的表情。
    已经交了辞职报告,今天下午跟老板谈一谈。
    上班第十天
    一年了,回来看看。
    上班第十一天
    领到了离职通知单
    对上班失去了兴趣
    还没有拿到回家的火车票,惨了啊。
  • 原文地址:https://www.cnblogs.com/bluestorm/p/6347161.html
Copyright © 2011-2022 走看看