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)

原文地址:https://www.cnblogs.com/FlySheep/p/4580167.html