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-xhdpiAndroid有个自动匹配机制去选择对应的布局和图片资源 四、两种获取屏幕分辨率信息的方法:DisplayMetrics metrics = new DisplayMetrics();Display display = activity.getWindowManager().getDefaultDisplay();display.getMetrics(metrics);//这里得到的像素值是设备独立像素dp//DisplayMetrics metrics=activity.getResources().getDisplayMetrics(); 这样获得的参数信息不正确,不要使用这种方式。不能使用android.content.res.Resources.getSystem().getDisplayMetrics()。这个得到的宽和高是空的。

查看原文