一开始,公司配置的硬件参数如下:
widthPixels:1280
heightPixels:732
density:1.25
densityDpi:200
后来要更换硬件改成:宽:1280____高:752____密度:1.0___密度dpi:160
程序运行出来发现图片变小 字体变小 内容整体上移
O^O 我是个对适配一窍不通的万年菜鸟啊 、
后来在网上都适配方案 借鉴博客 今日头条屏幕适配方案 看完之后道理都懂 但是不会写 >_< 索性大佬给了代码 但是是kotlin。转成java代码如下:
public static void ScreenAdapter(Activity activity, Application application){ DisplayMetrics displayMetrics1 = application.getResources().getDisplayMetrics(); DisplayMetrics displayMetrics2 = activity.getResources().getDisplayMetrics(); // float targetDensity = displayMetrics1.widthPixels/960; // float targetDensityDpi = 160*targetDensity; float targetDensity = (float) 1.25; float targetDensityDpi = 160*targetDensity; displayMetrics1.density = targetDensity; displayMetrics1.scaledDensity = targetDensity; displayMetrics1.densityDpi = (int) targetDensityDpi; displayMetrics2.density = targetDensity; displayMetrics2.scaledDensity = targetDensity; displayMetrics2.densityDpi = (int) targetDensityDpi; }
注释的是原来大佬写的 但是我写的值要么太大要么太小 我直接换成公司本来硬件的参数了 、就完了0v0
道理还是要讲一下的:
在开发中xml中不要用物理像素px,因为这样不能随着屏幕大小而变化,当然大家都知道,用的都是dp,这个才可以根据硬件设备的密度参数和转换公式px = densityDpi/160*dp适配屏幕大小。就是这样喵。
之后我们再改变设备的参数即可。
目前只能这样肤浅地理解。又不是不能用.JPG
另外图片的mipmap的选择 根据density或者densityDpi 这个博客讲了Android开发使用mipmap文件夹的正确姿势: px 、dpi 、dp
就完了0v0