Evren Bingøl
Evren Bingøl

Reputation: 1725

Screen Size Honeycomb Menu android

Hi I am trying yo get the screen size of screen minus the menu bar at the bottom.

I know I could just subtract a constant number according to the resolution of the device but it is a super ugly hack. I am sure google people are not dumb enough to forget to give the user a function to get the height of the bottom menu bar so I can subtract it from the full screen size

This is a similar post. Size of android notification bar and title bar?

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

what_i_need =metrics.heightPixels-buttomMenuHeight();

I need buttomMenuHeight();

i could not find it in the API. I don't really care about the backward comparability at this point

Thanks

Upvotes: 3

Views: 3069

Answers (3)

user650881
user650881

Reputation: 2505

Try calling getHeight() after onLayout. The view is not sized on inflate.

EDIT: Or since Activity does not have onLayout you might wait for onSizeChanged.

(Reference How to know when activity is laid out?)

Upvotes: 1

Evren Bingøl
Evren Bingøl

Reputation: 1725

I am drawing image in native code and I need to pass the size of the screen to C.

I tried to get the Height by getHeight() of the view but that returns 0 always even after setContentView is called.

RelativeLayout masterLayout = new RelativeLayout(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
masterLayout.setLayoutParams(params);
setContentView(masterLayout);

when I try masterLayout.getHeight(), it returns 0. I expected to get the full screen height as I said fill_parent.

Upvotes: 0

Ollie C
Ollie C

Reputation: 28519

Why not use the height of the activity's top-level View? e.g. if your activity contains a full-height LinearLayout, use its height, so you don't have to know the menu height, or noticiation bar height.

I think you're treading a dangerous road doing this kind of calculation, as you don't know what the future layouts for Android might be, or how they might differ on Google TV, or whatever.

Upvotes: 7

Related Questions