zoukankan      html  css  js  c++  java
  • Android屏幕适配

    Android屏幕适配主要有以下五种方法:

      1.图片适配(不同像素密度的手机,加载不同资源文件下的图片)

        ldpi:320*240

        mdpi:480*320

        hdpi:800*480

        xhdpi:1280*720

        xxhdpi:1920*1080

      如果当前像素密度的手机上面没有图片,就回去加载高一个级别的图片

      像素密度:当前一个英寸上分布的像素点dpi

      像素密度的计算:像素密度 = 分辨率的对角线 / 英寸数

    ldpi 1dp=0.75px 160dp=120px 240px一半 320*240
    mdpi 1dp=1px 160dp=160px 320px一半 480*320
    hdpi 1dp=1.5px 160dp=240px 480px一半 800*480
    xhdpi 1dp=2px 160dp=320px 640px一半 1280*720
    xxhdpi 1dp=3px 160dp=480px 960px一半 1920*1080

      2.dimens.xml分配

        例如:对xhdpi进行个性化定制:

        1.创建“values-1280x752”文件夹

        2.在dimens.xml文件中定义

      3.布局适配(layout适配,不同像素密度的手机,加载不同资源文件夹下的布局)

        例如:对xhdpi进行个性化定制:

        1.创建“layout-1280x752”文件夹

        2.在布局文件中定义

      4.Java代码适配(控件的宽高,就是根据屏幕 宽高的百分比去设置)

    WindowManager wm = getWindowManager();
            DisplayMetrics outMetrics = new DisplayMetrics();
            wm.getDefaultDisplay().getMetrics(outMetrics);
    
            int width = outMetrics.widthPixels;
            int height = outMetrics.heightPixels;
    
            // 加0.5的目的就是四舍五入的操作
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams((int) (width * 0.5 + 0.5), (int) (height * 0.5 + 0.5));
            TextView tv = (TextView) findViewById(R.id.tv);
            tv.setLayoutParams(layoutParams);

      5.权重分配(weight)

  • 相关阅读:
    深入剖析RocketMQ源码-NameServer
    Percolator模型及其在TiKV中的实现
    源码解读Dubbo分层设计思想
    vivo营销自动化技术解密|开篇
    Node.js 应用全链路追踪技术——[全链路信息获取]
    Linux系统 usermod -a -G 不重启 立即生效
    安装Docker和Docker-Compose工具
    linux 启动停止jar
    check_ffmpeg_status
    shell 的字符完全匹配
  • 原文地址:https://www.cnblogs.com/FlySheep/p/4580167.html
Copyright © 2011-2022 走看看