2012-01-12 14 views
10

Necesito obtener la altura y el peso de la ventana.
tengo esto en mi código:Error al obtener el tamaño de la ventana en android: "El método getWindowManager no está definido"

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

pero tengo un error:

The method getWindowManager is undefined

lo que debería importar para esto? o puedo obtener los tamaños de la regla de diferentes maneras? he importado

import android.view.Display; 
import android.view.Window; 
import android.view.WindowManager; 
import android.content.Context; 
import android.util.DisplayMetrics; 

Respuesta

0

Por favor, compruebe si está llamando por encima de método en una clase de actividad, o de la actividad exterior.

Para el papel pintado, este método no está disponible para obtener la altura o el ancho de la ventana, debe obtener el ancho y la altura de la ventana disponible mediante el uso de la superficie.

+0

, estoy haciendo un live fondo de pantalla y estoy llamando a esto en el motor del fondo de pantalla –

34

¿Dónde está usando este código?

El error de getWindowManager dice que no puede encontrar el método porque la raíz de su clase no lo tiene.

Prueba esto:

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

o

((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)) 
    .getDefaultDisplay().getMetrics(metrics); 

Si esto no funciona, por favor pegar su actividad

3

Utilice esta:

display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
display.getWidth(); // to get width of the screen 
display.getHeight(); // to get height of the Screen 

disfrutar. :))

+4

getHeight() ahora está en desuso –

+0

@IgorG .: ¿me puede dar el enlace donde se dice que está en desuso? –

+0

http://developer.android.com/reference/android/view/Display.html –

1

Usted podría utilizar esta por ejemplo, si usted lo está utilizando en el interior de un fragmento:

getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics); 
1

Uso del Context de la actividad con getActivityContext()

DisplayMetrics metrics = new DisplayMetrics(); 
getActivityContext().getWindowManager().getDefaultDisplay().getMetrics(metrics); 
width1 = metrics.widthPixels; 
height1 = metrics.heightPixels; 
sin
Cuestiones relacionadas