问题
I used following method to get the screen size:
public static Point getScreenSize(Context context)
{
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
int w = wm.getDefaultDisplay().getWidth();
int h = wm.getDefaultDisplay().getHeight();
return new Point(w, h);
}
On my samsung galaxy s6, this method returns 1080x1920... Although my device has a resolution of 1440x2560.
Why? Is there a better method to get the screen resolution that works on newer phones reliable as well?
EDIT
I need this method in a service! I don't have a view/activity for help, only the application context! And I need the REAL pixels
回答1:
The best way to get your screen resolution is from DisplayMetrics
:
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int width = displayMetrics.widthPixels;
int height = displayMetrics.heightPixels;
回答2:
If you are targeting for API >= 17, try with the getRealSize
method of the Display
class:
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Point size = new Point();
wm.getDefaultDisplay().getRealSize(size);
String resolution = size.x + "x" + size.y;
for me, it worked.
回答3:
Use this one:
private static String getScreenResolution(Context context)
{
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
display.getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
return "{" + width + "," + height + "}";
}
回答4:
The API returns the number of pixels an app can use, so this is the correct result.
回答5:
Use this.
DisplayMetrics metrics;
int width = 0, height = 0;
In your onCreate method.
metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
height = metrics.heightPixels;
width = metrics.widthPixels;
回答6:
Try this:
Display mDisplay = context.getWindowManager().getDefaultDisplay();
mDisplay.getWidth();
mDisplay.getHeight();
Note that this code uses deprecated APIs.
来源:https://stackoverflow.com/questions/38615102/get-screen-resolution-of-device