状态栏打开后是否可以知道我的活动的可见高度?
我想知道我的屏幕的可见高度。
尝试查看 treeobserver 方法.. 喜欢:
main_layout.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout()
{
Rect r = new Rect();
// r will be populated with the coordinates of your view
// that area still visible.
main_layout.getWindowVisibleDisplayFrame(r);
int heightDiff = main_layout.getRootView().getHeight()-(r.bottom -r.top);
}
});
将 main_layout 替换为您想要的视图对象。希望它可以提供帮助。
myLayout.getHeight(); 只有在视图显示在屏幕上之后才会返回视图的实际可见高度,然后它才会为 0。如果您真的有兴趣了解 myLayout.getHeight() 那么您可能想在视图显示在屏幕上之后检查
如果您想知道屏幕的高度/宽度,那么您可以考虑使用以下代码:DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm);
最终 int 高度 = dm.heightPixels; 最终 int 宽度 = dm.widthPixels;
Hopefully this line of code will work for you. i use this when i want height n width of the screen
// get screen width/height
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics); height =
metrics.heightPixels; width = metrics.widthPixels;
给你的主要布局元素一个 id:
<LinearLayout id="myLayout">
...
</LinearLayout>
然后得到它的高度setContentView()
:
View myLayout = (View) findViewById(R.id.myLayout);
int height = myLayout.getHeight();
另请参阅此问题以获取更多信息。