开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情 最近在项目总结过程中,发现了之前困扰很久才解决的问题,现在分享以供后续查阅。
项目需求是点击按钮出现屏幕适中的对话框,实现效果如下图:
随着窗口大小的改变,Android可以调整缩放比例,可前提是必须知道手机屏幕的边界,从而避免缩放造成的布局变形问题。查阅了Android官方文档,Android有提供DisplayMetircs类,可以很方便地获取分辨率。下面对DisplayMetics类作一下简要介绍: Andorid.util包下的DisplayMetrics类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。(官方说明)
A structure describing general information about a display, such as its size, density, and font scaling.
To access the DisplayMetrics members, retrieve display metrics like this:
context.getResources().getDisplayMetrics();
第一步是获取DisplayMetrics成员,首先初始化一个对象如下:
DisplayMetrics d = new DisplayMetrics();
然后获取到当前window管理的一个d对象:
getWindow().getWindowManager().getDefaultDisplay().getMetrics(d);//获取到当前window管理的一个display对象
WindowManager.LayoutParams p = this.getWindow().getAttributes();//手机屏幕对象
最后获取高宽维度并进行相关设置:
p.height = (int) (d.heightPixels * 0.6);//获取高并设置
p.width = (int) (d.widthPixels * 0.8);//获取宽并设置
this.getWindow().setAttributes(p);
其中所取得的高宽维度是以像素为单位(Pixels)。这样就ok了,当然也可以设置对话框布局:
p.gravity = Gravity.CENTER;//我这里设置的居中
今天分享就到这里了,有问题欢迎留言!