繁体   English   中英

如何在Android中查找屏幕的高度和宽度

[英]How to find the height and width of screen in android

我有一个名为crate的类,我想在其中找到高度和宽度。 为此,我正在使用:

public class Crate {
    public int acrossCrate;
    public int upDownCrate;

    public Crate(Context context) {

    DisplayMetrics metrics = context.getResources().getDisplayMetrics();
    int width = metrics.widthPixels;
    int height = metrics.heightPixels;
}
}

但是我还有另一个叫做draw的类,它调用了crate类,当我在rate中使用Context上下文时,在draw类中调用它时会出现错误:

public class Draw extends View {
    float x, y;
    Paint red = new Paint();
    Paint green = new Paint();
    Paint black = new Paint();
    Paint blue = new Paint();
    Bitmap player;
    Bitmap crate;
    int rectSide = 1000;

    Player thePlayer = new Player();
    Crate theCrate = new Crate();//<-- ERROR when i use Context context

我真的很困惑,如果有人知道如何做到这一点,并且可以帮助我,那将是很棒的。

像这样打电话

 Crate theCrate;

并在构造函数中

theCrate = new Crate(context);

一旦尝试以下方法

// Get screen width
public static int getScreenWidth(Context c) {
    DisplayMetrics dmetrics = new DisplayMetrics();
    ((Activity) c).getWindowManager().getDefaultDisplay()
            .getMetrics(dmetrics);
    return dmetrics.widthPixels;
}

// Get screen height
public static int getScreenHeight(Context c) {
    DisplayMetrics dmetrics = new DisplayMetrics();
    ((Activity) c).getWindowManager().getDefaultDisplay()
            .getMetrics(dmetrics);
    return dmetrics.heightPixels;
}

希望这对您有帮助。

这很容易...如果您的View类是全屏尺寸,则只需使用此类的getWidth()和getHeight()方法

否则,从windowmanager方法获取它,就像其他建议的一样

if (Build.VERSION.SDK_INT >= 11) {
    Point size = new Point();
    try {
        this.getWindowManager().getDefaultDisplay().getRealSize(size);
        screenWidth = size.x;
        screenHeight = size.y;
    } catch (NoSuchMethodError e) {
         screenHeight = this.getWindowManager().getDefaultDisplay().getHeight();
         screenWidth=this.getWindowManager().getDefaultDisplay().getWidth();
    }

} else {
    DisplayMetrics metrics = new DisplayMetrics();
    this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
    screenWidth = metrics.widthPixels;
    screenHeight = metrics.heightPixels;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM