我需要获得窗户高度和重量 我的代码中有这个:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
width1 = metrics.widthPixels;
height1 = metrics.heightPixels;
但我有一个错误:
方法getWindowManager未定义
我应该为此导入什么? 或者我可以用不同的方式获得熨平板的尺寸? 我已导入
import android.view.Display;
import android.view.Window;
import android.view.WindowManager;
import android.content.Context;
import android.util.DisplayMetrics;
答案 0 :(得分:45)
您在哪里使用此代码?
getWindowManager
的错误表示无法找到该方法,因为您的类的根没有它。
试试这个:
((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(metrics);
或
((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE))
.getDefaultDisplay().getMetrics(metrics);
如果这不起作用,请粘贴您的活动
答案 1 :(得分:4)
使用此:
display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
display.getWidth(); // to get width of the screen
display.getHeight(); // to get height of the Screen
<强>更新强>
请查看Android-Developer网站。有关更多参考。
您可以使用以下代码段来获取设备的高度宽度。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
感谢@halfer建议更新此内容。
答案 2 :(得分:2)
将活动的Context
与getActivityContext()
DisplayMetrics metrics = new DisplayMetrics();
getActivityContext().getWindowManager().getDefaultDisplay().getMetrics(metrics);
width1 = metrics.widthPixels;
height1 = metrics.heightPixels;
答案 3 :(得分:1)
如果您在片段中使用它,可以使用它:
getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
答案 4 :(得分:0)
请检查您是否在活动类或外部活动中调用上述方法。
对于壁纸,此方法无法获得窗口的高度或宽度,您需要通过使用曲面获得可用窗口的宽度和高度。
答案 5 :(得分:0)
对我有用
import android.app.Activity;
((Activity)getContext()).getWindowManager().getDefaultDisplay().getMetrics(metrics);
mediaProjectionManager = (MediaProjectionManager)((Activity) getContext()).getSystemService(Context.MEDIA_PROJECTION_SERVICE);