gpt4 book ai didi

Android display.getWidth/height 返回错误的设备尺寸?

转载 作者:行者123 更新时间:2023-11-29 16:23:24 26 4
gpt4 key购买 nike

我有一个小类需要跟踪设备的宽度和高度。

public class BrScreenMetrics {
public static int screenX=0;
public static int screenY=0;

public static void setMetrics(Activity activity)
{

WindowManager w = activity.getWindowManager();
Display d = w.getDefaultDisplay();
screenX = d.getWidth();
screenY = d.getHeight();


}

对于每一个新的 Activity ,我都会取消这条线:

BrScreenMetrics.setMetrics(this);

它更新旋转等的值...这很好用,除了它返回 320x522,而不是我想要的 480x800。我做错了什么?

轻微更新:

我也尝试过使用这段代码以及使用 android 自己的指标类:

    public static void setMetrics(Activity activity)
{
DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
screenX = metrics.widthPixels;
screenY = metrics.heightPixels;

}

但它仍然是 320x522 :(

最佳答案

感谢查看 list 确实是正确的方法,我最终发现我需要最低要求为 4-6。

这是我的实用程序,如果有人觉得它有用或可以提供改进它的方法:

package se.brickit.foundation;
//Open comment block above for info.

import android.app.Activity;
import android.view.Display;
import android.view.WindowManager;
import android.webkit.WebSettings.ZoomDensity;

public class BrScreenMetrics {
private static int screenWidthPX = 0;
private static int screenHeightPX = 0;
private static int densityDpi = 0;
private static DisplayMetrics metrics;

public static void setMetrics(Activity activity) {
DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
screenWidthPX = metrics.widthPixels;
screenHeightPX = metrics.heightPixels;
densityDpi = metrics.densityDpi;

}

/**
* @return the screenWidthPX
*/
public static int getScreenWidthPX() {
return screenWidthPX;
}

/**
* @param screenWidthPX
* the screenWidthPX to set
*/
public static void setScreenWidthPX(int screenWidthPX) {
BrScreenMetrics.screenWidthPX = screenWidthPX;
}

/**
* @return the screenHeightPX
*/
public static int getScreenHeightPX() {
return screenHeightPX;
}

/**
* @param screenHeightPX
* the screenHeightPX to set
*/
public static void setScreenHeightPX(int screenHeightPX) {
BrScreenMetrics.screenHeightPX = screenHeightPX;
}

/**
* @return the densityDpi
*/
public static int getDensityDpi() {
return densityDpi;
}

/**
* @param densityDpi
* the densityDpi to set
*/
public static void setDensityDpi(int densityDpi) {
BrScreenMetrics.densityDpi = densityDpi;
}

/**
* @return the metrics
*/
public static DisplayMetrics getMetrics() {
return metrics;
}

/**
* @return the density
*/
public static ZoomDensity getZoomDensity() {
if (densityDpi < 140)
return ZoomDensity.CLOSE;
if (densityDpi < 210)
return ZoomDensity.MEDIUM;
return ZoomDensity.FAR;
}

public static int getStatusBarHeight() {
ZoomDensity zd = getZoomDensity();

if (zd == ZoomDensity.CLOSE)
return 19;
else if (zd == ZoomDensity.MEDIUM)
return 25;
else
return 38;

}

}

关于Android display.getWidth/height 返回错误的设备尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058711/

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