Cómo obtener el tamaño total de la pantalla en un dispositivo android programaticamente
Si utilizo el código mostrado aquí para obtener el tamaño total de la pantalla es siempre corta en altura al tamaño total de la pantalla como se muestra en las especificaciones documentadas para el dispositivo. Por ejemplo, traté de obtener el tamaño de la pantalla mediante el código para obtener el tamaño de una tableta en la lista como 1280 X 800 y el resultado del código es: 1216 X 800. ¿dónde está la falta de 64 píxeles va a?
Puedo adivinar que podría ser la barra en la parte inferior de la pantalla que contiene los botones de la parte posterior y de la casa. Pero eso no suena bien como las vistas de contenido se supone que es la raíz de todas las vistas. ¿que esta pasando aqui?
- ¿Cómo obtener la densidad de una pantalla?
- Obtener ancho de pantalla Android en inmersiones
- Añadir acceso directo a la aplicación de Android En la pantalla principal, haga clic en el botón
- Mantener la pantalla encendida, żde qué manera?
- Android Obtener dimensiones de pantalla desde el servicio
La única explicación posible podría ser esta parte de la interfaz de usuario
Código utilizado para obtener el tamaño de la pantalla
// gets the content view windows width and height size DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int widthContentView = displaymetrics.widthPixels; int heightContentView = displaymetrics.heightPixels; Toast.makeText(MainActivity.this, "width of content view: " + widthContentView Toast.LENGTH_SHORT).show(); Toast.makeText(MainActivity.this, "height of content view: " + heightContentView, Toast.LENGTH_SHORT).show();
- ¿Cómo puedo crear una aplicación personalizada de reemplazo de pantalla de inicio para Android?
- Activación de la pantalla mediante programación
- Captura continua de la pantalla de Android para su procesamiento en una aplicación
- crear pantalla de ayuda de Android
- Obtener información de rotación automática en Android
- Nombres de pantalla personalizados de Google Analytics en Easy Tracker
- El selector de inicio de Android / lanzador no muestra la opción "usar de forma predeterminada para esta acción"
- Ratio de pantalla de Android
Si llamas a esto fuera de una actividad, necesitarás pasar el contexto (o hacerlo a través de otra llamada). A continuación, utilícelo para obtener las métricas de visualización:
DisplayMetrics metrics = context.getResources().getDisplayMetrics(); int width = metrics.widthPixels; int height = metrics.heightPixels;
try this code... Display display = context.getWindowManager() .getDefaultDisplay(); int width = display.getWidth(); int height=display.getHeight(); it will give screen's width and height,And according to width and height write if- conditions for each device's screen resolution.
int screenSize = getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK; switch(screenSize) { case Configuration.SCREENLAYOUT_SIZE_LARGE: Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show(); break; case Configuration.SCREENLAYOUT_SIZE_NORMAL: Toast.makeText(this, "Normal screen",Toast.LENGTH_LONG).show(); break; case Configuration.SCREENLAYOUT_SIZE_SMALL: Toast.makeText(this, "Small screen",Toast.LENGTH_LONG).show(); break; default: Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show(); }
No estoy seguro de lo que api que utiliza, pero si utiliza api a partir de 17 se puede utilizar esto:
display.getRealSize();
int density; private DisplayMetrics metrics; private int widthPixels; private float scaleFactor; private float widthDp; metrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); density= getResources().getDisplayMetrics().densityDpi; widthPixels = metrics.widthPixels; scaleFactor = metrics.density; widthDp = widthPixels / scaleFactor; System.out.println("widthDp== "+widthDp ); if(density==DisplayMetrics.DENSITY_HIGH) System.out.println("Density is high"); if(density==DisplayMetrics.DENSITY_XXHIGH) System.out.println("Density is xxhigh"); if(density==DisplayMetrics.DENSITY_XXXHIGH) System.out.println("Density is xxxhigh"); if(density==DisplayMetrics.DENSITY_TV) System.out.println("Density is Tv");
int Measuredwidth = 0; int Measuredheight = 0; Point size = new Point(); WindowManager w = getWindowManager(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { w.getDefaultDisplay().getSize(size); Measuredwidth = size.x; Measuredheight = size.y; } else { Display d = w.getDefaultDisplay(); Measuredwidth = d.getWidth(); Measuredheight = d.getHeight();; }
Tienes razón, te está mostrando la resolución de la pantalla de tu aplicación y, por tanto, consigues la diferencia. En lugar de getMetrics (), utiliza getRealMetrics (). Puede utilizar el siguiente código para obtener el tamaño de pantalla real del dispositivo.
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); DisplayMetrics metrics = new DisplayMetrics(); display.getRealMetrics(metrics); int width = metrics.widthPixels; int height = metrics.heightPixels; return width + "*" + height;
Obtenga todas las pantallas para ajustar el ancho y la altura que necesite.
Display display; display=getWindowManager().getDefaultDisplay(); text1.setWidth(display.getWidth()-380); text1.setHeight(display.getHeight()-720);
- Intención de la cámara no volver a llamar a la actividad
- Enviar un correo electrónico con varios archivos adjuntos