Erhalten Sie Bildschirmbreite und -höhe

Wie kann ich die Bildschirmbreite und -höhe erhalten, um diesen Wert zu verwenden?

@Override protected void onMeasure(int widthSpecId, int heightSpecId) { Log.e(TAG, "onMeasure" + widthSpecId); setMeasuredDimension(SCREEN_WIDTH, SCREEN_HEIGHT - game.findViewById(R.id.flag).getHeight()); } 

Solutions Collecting From Web of "Erhalten Sie Bildschirmbreite und -höhe"

Unter Verwendung dieses Codes können Sie Display's Width & Height Laufzeitanzeige Display's Width & Height

 DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int height = displayMetrics.heightPixels; int width = displayMetrics.widthPixels; 

In einer Ansicht müssen Sie so etwas tun:

 ((Activity) getContext()).getWindowManager() .getDefaultDisplay() .getMetrics(displayMetrics); 

Es gibt eine sehr einfache Antwort und ohne Passkontext

 public static int getScreenWidth() { return Resources.getSystem().getDisplayMetrics().widthPixels; } public static int getScreenHeight() { return Resources.getSystem().getDisplayMetrics().heightPixels; } 

Hinweis: Wenn Sie möchten, dass die Höhe Navigationsleiste enthält, verwenden Sie die Methode unten

 WindowManager windowManager = (WindowManager) BaseApplication.getApplication().getSystemService(Context.WINDOW_SERVICE); final Display display = windowManager.getDefaultDisplay(); Point outPoint = new Point(); if (Build.VERSION.SDK_INT >= 19) { // include navigation bar display.getRealSize(outPoint); } else { // exclude navigation bar display.getSize(outPoint); } if (outPoint.y > outPoint.x) { mRealSizeHeight = outPoint.y; mRealSizeWidth = outPoint.x; } else { mRealSizeHeight = outPoint.x; mRealSizeWidth = outPoint.y; } 

Nur um die Antwort von parag und SpK zu aktualisieren, um mit der aktuellen SDK-Abwärtskompatibilität von veralteten Methoden übereinzustimmen:

 int Measuredwidth = 0; int Measuredheight = 0; Point size = new Point(); WindowManager w = getWindowManager(); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { w.getDefaultDisplay().getSize(size); Measuredwidth = size.x; Measuredheight = size.y; }else{ Display d = w.getDefaultDisplay(); Measuredwidth = d.getWidth(); Measuredheight = d.getHeight(); } 

Warum nicht

DisplayMetrics displaymetrics = getResources (). GetDisplayMetrics ();

dann benutze

displayMetrics.widthPixels (heightPixels)

Probieren Sie den folgenden Code: –

1.

 Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y; 

2.

 Display display = getWindowManager().getDefaultDisplay(); int width = display.getWidth(); // deprecated int height = display.getHeight(); // deprecated 

oder

 int width = getWindowManager().getDefaultDisplay().getWidth(); int height = getWindowManager().getDefaultDisplay().getHeight(); 

3.

 DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); metrics.heightPixels; metrics.widthPixels; 
 DisplayMetrics dimension = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dimension); int width = dimension.widthPixels; int height = dimension.heightPixels; 
 public class DisplayInfo { int screen_height=0, screen_width=0; WindowManager wm; DisplayMetrics displaymetrics; DisplayInfo(Context context) { getdisplayheightWidth(context); } void getdisplayheightWidth(Context context) { wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); displaymetrics = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(displaymetrics); screen_height = displaymetrics.heightPixels; screen_width = displaymetrics.widthPixels; } public int getScreen_height() { return screen_height; } public int getScreen_width() { return screen_width; } } 

Ermitteln Sie den Wert der Bildschirmbreite und -höhe.

 Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); width = size.x; height = size.y; 

Die hier gezeigten Methoden sind veraltet / veraltet, aber dies funktioniert immer noch. Benötigen Sie API 13?

Hör zu

 Display disp= getWindowManager().getDefaultDisplay(); Point dimensions = new Point(); disp.getSize(size); int width = size.x; int height = size.y; 
 DisplayMetrics lDisplayMetrics = getResources().getDisplayMetrics(); int widthPixels = lDisplayMetrics.widthPixels; int heightPixels = lDisplayMetrics.heightPixels; 
 Display display = ((WindowManager) this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); int mWidthScreen = display.getWidth(); int mHeightScreen = display.getHeight(); 

Voller Weg, um das zu tun, das gibt die wahre Auflösung zurück:

  WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Point size = new Point(); wm.getDefaultDisplay().getRealSize(size); final int width = size.x, height = size.y; 

Und da sich das bei unterschiedlicher Orientierung ändern kann, gibt es hier eine Lösung (in Kotlin), um es richtig zu machen, egal in welcher Richtung:

 /** * returns the natural orientation of the device: Configuration.ORIENTATION_LANDSCAPE or Configuration.ORIENTATION_PORTRAIT .
* The result should be consistent no matter the orientation of the device */ @JvmStatic fun getScreenNaturalOrientation(context: Context): Int { //based on : http://stackoverflow.com/a/9888357/878126 val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager val config = context.resources.configuration val rotation = windowManager.defaultDisplay.rotation return if ((rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) && config.orientation == Configuration.ORIENTATION_LANDSCAPE || (rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) && config.orientation == Configuration.ORIENTATION_PORTRAIT) Configuration.ORIENTATION_LANDSCAPE else Configuration.ORIENTATION_PORTRAIT } /** * returns the natural screen size (in pixels). The result should be consistent no matter the orientation of the device */ @JvmStatic fun getScreenNaturalSize(context: Context): Point { val screenNaturalOrientation = getScreenNaturalOrientation(context) val wm = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager val point = Point() wm.defaultDisplay.getRealSize(point) val currentOrientation = context.resources.configuration.orientation if (currentOrientation == screenNaturalOrientation) return point else return Point(point.y, point.x) }

Verwenden Sie einfach die function unterhalb, die Breite und Höhe der Bildschirmgröße als ein Array von ganzen Zahlen zurückgibt

 private int[] getScreenSIze(){ DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int h = displaymetrics.heightPixels; int w = displaymetrics.widthPixels; int[] size={w,h}; return size; } 

Fügen Sie auf Ihrer onCreate-function oder auf Ihrer Schaltfläche den folgenden Code hinzu, um die Bildschirmgrößen wie unten gezeigt auszugeben

  int[] screenSize= getScreenSIze(); int width=screenSize[0]; int height=screenSize[1]; screenSizes.setText("Phone Screen sizes \n\n width = "+width+" \n Height = "+height); 

Ich fand Weigans Antwort am besten auf dieser Seite, hier ist, wie Sie das in Xamarin.Android :

 public int GetScreenWidth() { return Resources.System.DisplayMetrics.WidthPixels; } public int GetScreenHeight() { return Resources.System.DisplayMetrics.HeightPixels; } 

Die Bildschirmauflösung ist die Gesamtanzahl der Pixel auf dem Bildschirm. Folgendes Programm extrahiert die Bildschirmauflösung des Geräts. Es wird Bildschirmbreite und -höhe drucken. Diese Werte sind in Pixel angegeben.

 public static Point getScreenResolution(Context context) { // get window managers WindowManager manager = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); Display display = manager.getDefaultDisplay(); Point point = new Point(); display.getSize(point); // get width and height int width = point.x; int height = point.y; return point; 

}

Diese Dienstprogramme funktionieren mit der Größenabstraktion in Android.

Es enthält eine class SizeFromDisplay.java Sie können es wie folgt verwenden:

 ISize size = new SizeFromDisplay(getWindowManager().getDefaultDisplay()); size.width(); size.hight(); 

Zwei schritte. Erweitern Sie zuerst die Aktivitätsklasse

 class Example extends Activity 

Zweitens: Verwenden Sie diesen Code

  DisplayMetrics displayMetrics = new DisplayMetrics(); WindowManager windowmanager = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE); windowmanager.getDefaultDisplay().getMetrics(displayMetrics); int deviceWidth = displayMetrics.widthPixels; int deviceHeight = displayMetrics.heightPixels; 

Versuchen Sie diesen Code für Kotlin

  val display = windowManager.defaultDisplay val size = Point() display.getSize(size) var DEVICE_WIDTH = size.x var DEVICE_HEIGHT = size.y 
  @Override protected void onPostExecute(Drawable result) { Log.d("width",""+result.getIntrinsicWidth()); urlDrawable.setBounds(0, 0, 0+result.getIntrinsicWidth(), 600); // change the reference of the current drawable to the result // from the HTTP call urlDrawable.drawable = result; // redraw the image by invalidating the container URLImageParser.this.container.invalidate(); // For ICS URLImageParser.this.container.setHeight((400+URLImageParser.this.container.getHeight() + result.getIntrinsicHeight())); // Pre ICS`enter code here` URLImageParser.this.container.setEllipsize(null); }