gpt4 book ai didi

java - Android getDisplayMetrics() 没有返回准确的显示尺寸

转载 作者:搜寻专家 更新时间:2023-11-01 09:44:40 25 4
gpt4 key购买 nike

我正在尝试获取用于在屏幕上放置元素和映射触摸事件的设备的像素宽度/高度,但没有获得所需的效果(注意右下角的方 block 应该与右下角完全齐平):

White square should be flush in the lower right corner

// screen size
DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
float ScrDensity = metrics.density;
int metricHeight = metrics.heightPixels;//
int metricWidth = metrics.widthPixels;//

Log.i("AllMetrics", metrics.toString());

// temp
int rightButton_diameter = 100;
int rightButton_xpos = metricWidth - rightButton_diameter;
int rightButton_ypos = metricHeight - rightButton_diameter;

AllMetrics 返回的地方:

DisplayMetrics{density=2.0, width=720, height=1184, scaledDensity=2.0, xdpi=320.0, ydpi=320.0}

我注意到返回的高度也不同于虚拟设备管理器(API 19,Android 4.4)中列出的 720x1280 并且触摸事件的 x/y 位置对于绘制的元素(即可点击区域)似乎是准确的按钮与绘制按钮的位置相同)

这是配置错误还是我使用了不正确的获取屏幕位置的方法?

最佳答案

检查这段代码是否适合我

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;

在 Activity 之外你可以试试这个

 ((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(dm)

关于java - Android getDisplayMetrics() 没有返回准确的显示尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38542614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com