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()。这个得到的宽和高是空的。
  • 相关阅读:
    chrome platform
    selenium 模拟手机
    selenium得到弹出窗口
    django 生成动态的PDF文件
    django 动态生成PDF文件
    Python-OpenCV基本操作cv2
    Python 内置函数sorted()在高级用法
    torchvision.datasets.ImageFolder数据加载
    matplotlib 画动态图以及plt.ion()和plt.ioff()的使用
    使用pytorch完成kaggle猫狗图像识别
  • 原文地址:https://www.cnblogs.com/bluestorm/p/6347161.html
Copyright © 2011-2022 走看看