¿Cómo puedo obtener el ancho y la altura de la pantalla del sistema Android Honeycomb?
mi código:
Display display = activity.getWindowManager().getDefaultDisplay(); DisplayMetrics displayMetrics = new DisplayMetrics(); display.getMetrics(displayMetrics); System.out.println("screen width:"+displayMetrics.widthPixels); System.out.println("screen heigth:"+displayMetrics.heightPixels);
cuando ejecuto este programa en el sistema Android Honeycomb, la salida es de 800 y 1232, pero la pantalla del dispositivo es 800_1280, hao puedo conseguirlo? Gracias.
- Determinar si el dispositivo tiene pantalla táctil o no
- Procese el comando sin iniciar MainActivity, en Android
- Cómo mostrar el icono de alarma con la hora en la pantalla bloqueada y en la barra de notificación
- ¿Cómo crear dos vistas en Android que usan 50% de altura cada una, a menos que sea menor?
- Evitar que una barra de estado oculta reaparezca después del bloqueo de pantalla
- ¿Cómo distinguir el estado de encendido / apagado de la pantalla durante la llamada entrante?
- Convertir todo el contenido en un ScrollView a un mapa de bits?
- ¿Evita que la orientación de Live Wallpaper cambie cuando se abre una aplicación y se cambia la orientación?
- Android: ¿Cómo navegar de nuevo desde la sub-pantalla de preferencia a través de la barra de acción en xml?
- Mdpi imagen es demasiado pequeño para 10 "android tablet
- Problema con los descriptores HID de la pantalla táctil USB de Android
- Android: receptor de la difusión para la pantalla encendido y pantalla apagado
- ¿Cómo atenuar / desenfoque sólo parte de la pantalla?
Esta pieza de código funciona para mí (si no te importa usar métodos indocumentados):
Display d = getWindowManager().getDefaultDisplay(); int width, height; Method mGetRawH; Method mGetRawW; try { mGetRawH = Display.class.getMethod("getRawWidth"); mGetRawW = Display.class.getMethod("getRawHeight"); width = (Integer) mGetRawW.invoke(d); height = (Integer) mGetRawH.invoke(d); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } //You should care about orientation here int o = getResources().getConfiguration().orientation; if (o == Configuration.ORIENTATION_PORTRAIT) { if (width > height) { int tmp = width; width = height; height = tmp; } } else if (o == Configuration.ORIENTATION_LANDSCAPE) { if (width < height) { int tmp = width; width = height; height = tmp; } } Log.d("d", "w=" + width + " h=" + height);
En realidad, la width=800 and height=1280
pantalla completa del dispositivo width=800 and height=1280
(including status bar, title bar)
. Si ejecuta el código para obtener el tamaño de la pantalla, el sistema no incluirá la altura de la barra de estado y la altura de la barra de título, por lo que obtendrá la height as 1232 (1280-(status bar height + title bar height))
.
1280 x 752 – paisaje 800 x 1232 – retrato
Estos 48 px son para la barra de notificación predeterminada de Andriod …