tamaƱo studio saber resolucion pantalla obtener las dimensiones cual como celular cambiar aplicacion ajustar android

android - studio - obtener las dimensiones de la pantalla en java



Obtener ancho y alto de pantalla (20)

Cómo puedo obtener el ancho y la altura de la pantalla para usar este valor en

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


Dos pasos. En primer lugar, ampliar la clase de actividad.

class Example extends Activity

Segundo: Usa este código

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


Este conjunto de utilidades para trabajar con la abstracción Tamaño en Android.

Contiene una clase SizeFromDisplay.java Puedes usarlo así:

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


Hay una respuesta muy simple y sin contexto de paso.

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

Nota: si desea que la altura incluya la barra de navegación, utilice el método a continuación

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; }


Intenta a continuación el código: -

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

o

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

3.

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


La resolución de la pantalla es el número total de píxeles en la pantalla. El siguiente programa extraerá la resolución de pantalla del dispositivo. Se imprimirá ancho y alto de la pantalla. Esos valores están en píxeles.

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;

}


Los métodos que se muestran aquí están obsoletos / obsoletos, pero esto aún funciona. Requerir API 13

Echale un vistazo

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


Manera completa de hacerlo, que devuelve la verdadera resolución:

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

Y dado que esto puede cambiar en una orientación diferente, aquí hay una solución (en Kotlin), para hacerlo bien sin importar la orientación:

/** * returns the natural orientation of the device: Configuration.ORIENTATION_LANDSCAPE or Configuration.ORIENTATION_PORTRAIT .<br></br> * The result should be consistent no matter the orientation of the device */ @JvmStatic fun getScreenNaturalOrientation(context: Context): Int { //based on : http://.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) }


Ninguna de las respuestas aquí funciona correctamente para las pantallas múltiples de Chrome OS, ni para los próximos productos por cable.

Cuando busque la configuración actual, use siempre la configuración de su actividad actual en getResources().getConfiguration() . No utilice la configuración de su actividad en segundo plano o la del recurso del sistema. La actividad en segundo plano no tiene un tamaño, y la configuración del sistema puede contener múltiples ventanas con tamaños y orientaciones en conflicto , por lo que no se pueden extraer datos utilizables.

Así que la respuesta es

val config = context.getResources().getConfiguration() val (screenWidthPx, screenHeightPx) = config.screenWidthDp.dp to config.screenHeightDp.dp


Obtener el valor de ancho y alto de la pantalla.

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


Por qué no

DisplayMetrics displaymetrics = getResources (). GetDisplayMetrics ();

entonces usa

displayMetrics.widthPixels (heightPixels)


Prueba este código para Kotlin

val display = windowManager.defaultDisplay val size = Point() display.getSize(size) var DEVICE_WIDTH = size.x var DEVICE_HEIGHT = size.y


Simplemente use la función a continuación que devuelve el ancho y el alto del tamaño de la pantalla como una matriz de enteros

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; }

En su función onCreate o haga clic en el botón, agregue el siguiente código para mostrar los tamaños de pantalla como se muestra a continuación

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


Solo para actualizar la respuesta mediante parag y SpK para alinearse con la compatibilidad actual con SDK desde métodos obsoletos:

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(); }


Usando este código, puede obtener Display''s Width & Height tiempo de ejecución

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

En una vista necesitas hacer algo como esto:

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


Encontré la respuesta de weigan mejor en esta página, aquí está cómo puede usar eso en Xamarin.Android .

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


@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); }


Display display = ((WindowManager) this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); int mWidthScreen = display.getWidth(); int mHeightScreen = display.getHeight();


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


DisplayMetrics lDisplayMetrics = getResources().getDisplayMetrics(); int widthPixels = lDisplayMetrics.widthPixels; int heightPixels = lDisplayMetrics.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; } }