gpt4 book ai didi

android - 如何在 Android 运行时根据 dp 或 dip 确定屏幕宽度?

转载 作者:IT老高 更新时间:2023-10-28 12:53:43 26 4
gpt4 key购买 nike

我需要使用 dip/dp(在 java 文件中)对 android 小部件的布局进行编码。如果我在运行时编码,

int pixel=this.getWindowManager().getDefaultDisplay().getWidth();

这会返回以像素 (px) 为单位的屏幕宽度。要将其转换为 dp,我编写了代码:

int dp =pixel/(int)getResources().getDisplayMetrics().density ;

这似乎没有返回正确的答案。我制作了 WVGA800 的模拟器,它的屏幕分辨率为 480 x 800。当运行模拟器并让代码打印像素和 dp 的值时,两者都达到了 320。该模拟器为 240 dpi,其比例因子为 0.75。

最佳答案

正如@Tomáš Hubálek 提到的那样;
尝试类似:

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();    
float dpHeight = displayMetrics.heightPixels / displayMetrics.density;
float dpWidth = displayMetrics.widthPixels / displayMetrics.density;

尝试旧答案:

Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics ();
display.getMetrics(outMetrics);

float density = getResources().getDisplayMetrics().density;
float dpHeight = outMetrics.heightPixels / density;
float dpWidth = outMetrics.widthPixels / density;

关于android - 如何在 Android 运行时根据 dp 或 dip 确定屏幕宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6465680/

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