[英]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.