Friday, March 8, 2013

[android-developers] Re: How to get device raw width and height or actual screen width and height ?

For any API-level less than 17, use the snippets of code you are using successfully now.

For API-level 17 and higher (your Nexus 7 running 4.2), use this:
https://developer.android.com/reference/android/view/Display.html#getRealSize(android.graphics.Point)


On Monday, November 19, 2012 6:29:14 AM UTC-5, Makrand wrote:
I am trying to get the actual screen width and height of the Nexus 7 running on 4.2.

I am doing some runtime calculations based on device width and height to resize buttons and some UI elements, so it will look proper in all devices. my code was working great in all SDKs 4.1 and below but not working on 4.2.
 
I am using following code to get width and height. 

Code: 1
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
mWidth = displaymetrics.widthPixels;
mHeight = displaymetrics.heightPixels;

Code: 2
Point size = new Point();
WindowManager w = getWindowManager();
w.getDefaultDisplay().getSize(size); 
mWidth = size.x;
mHeight = size.y;

I have also tried with undocumented methods 
Code: 3
Display display = getWindowManager().getDefaultDisplay();
Method mGetRawW = Display.class.getMethod("getRawWidth");
Method mGetRawH = Display.class.getMethod("getRawHeight");
mWidth = (Integer) mGetRawW.invoke(display);
mHeight = (Integer) mGetRawH.invoke(display);

But none of above is working with Nexus 7 running on 4.2, its always subtracting status bar height, I am not getting full height. 

I have used some methods to calculate status bat height but not getting proper values, 

int statusBarHeight = Math.ceil(25 * context.getResources().getDisplayMetrics().density);

AND

Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight= rectgle.top;

is there any standard way to get actual device screen height and width?

--
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
---
You received this message because you are subscribed to the Google Groups "Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate