2012-01-12 37 views
10

Tôi cần có chiều cao cửa sổ và trọng lượng.
Tôi có điều này trong mã của tôi:Lỗi khi nhận kích thước cửa sổ trên Android: "Phương thức getWindowManager không được xác định"

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

nhưng tôi có một lỗi:

The method getWindowManager is undefined

những gì tôi cần nhập khẩu cho điều này? hoặc tôi có thể nhận được kích thước của lớp vữa theo các cách khác nhau? tôi đã nhập

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

Trả lời

0

Vui lòng kiểm tra xem bạn có đang gọi phương thức trên trong lớp hoạt động hoặc hoạt động bên ngoài không.

Đối với hình nền, phương pháp này không được cung cấp cho bạn để có chiều cao hoặc chiều rộng cửa sổ, bạn cần có chiều rộng và chiều cao của cửa sổ khả dụng bằng cách sử dụng bề mặt.

+0

không, tôi đang làm một live hình nền và tôi đang kêu gọi điều này trong Công cụ của hình nền –

34

Bạn đang sử dụng mã này ở đâu?

Lỗi của getWindowManager nói rằng không thể tìm thấy phương pháp vì gốc của lớp học của bạn không có.

Hãy thử điều này:

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

hoặc

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

Nếu điều này không làm việc, hãy dán hoạt động của bạn

3

Sử dụng này:

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

Thưởng thức. :))

+4

getHeight() hiện không được chấp nhận –

+0

@IgorG .: bạn có thể cho tôi liên kết mà nó được cho là không được dùng nữa không? –

+0

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

1

Bạn có thể sử dụng này ví dụ như nếu bạn đang sử dụng nó bên trong một đoạn:

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

Sử dụng Context của hoạt động này với getActivityContext()

DisplayMetrics metrics = new DisplayMetrics(); 
getActivityContext().getWindowManager().getDefaultDisplay().getMetrics(metrics); 
width1 = metrics.widthPixels; 
height1 = metrics.heightPixels; 
Các vấn đề liên quan