如何在android中找到屏幕的高度和宽度

时间:2015-06-19 05:10:18

标签: java 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类,当我在crate中使用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

我真的陷入困境,如果有人知道怎么做,可以帮助我,这将是伟大的。

4 个答案:

答案 0 :(得分:2)

像这样打电话

 Crate theCrate;

并在构造函数

theCrate = new Crate(context);

答案 1 :(得分:2)

尝试以下方法

// 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;
}

希望这会对你有所帮助。

答案 2 :(得分:0)

很容易......如果你的View类是全屏的大小,只需使用这个类的getWidth()和getHeight()方法

否则,从其他建议的

窗口管理器方法中获取它

答案 3 :(得分:0)

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;
}