2012-02-02 15 views
19

uygulama gösterimi metrikleri nasıl elde edilir? Bunu bazı etkinlik sınıflarına koyarsam mükemmel çalışır, ancak App sınıfıma koyduğumda getWindowManager() yöntemini bulamazsınız. WindowManager'ı uygulama sınıfında bulmanın bir yolu var mı?Uygulama sınıfı

Uygulamam sınıfı böyle tanımlanır:

public class myApp extends Application { 

ve yöntemi oluşturmak üzerinde

bu var: Burada

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 
int width = dm.widthPixels; 

cevap

54

, Context.getResource()

DisplayMetrics dm = getResources().getDisplayMetrics(); 
int densityDpi = dm.densityDpi;
1

bu deneyin:

Display display = getWindowManager().getDefaultDisplay(); 
Log.e("", "" + display.getHeight() + " " + display.getWidth()); 
+3

Application sınıfında getWindowManager olsun dönülemez. –

+1

kendi tarafında düzgün çalışıyor –

+0

@NiteshKhosla, Uygulama sınıfının getWindowManager() yöntemini içerdiğini gösteren herhangi bir dokümanı işaret edebilir misiniz? Burada bulamıyorum: http://developer.android.com/reference/android/app/Application.html –

10

Ayrıca bu deneyebilirsiniz:

WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); 
final DisplayMetrics displayMetrics = new DisplayMetrics(); 
wm.getDefaultDisplay().getMetrics(displayMetrics); 
int height = displayMetrics.heightPixels; 
int width = displayMetrics.widthPixels; 
0
final DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

int width = dm.widthPixels; 
int height = dm.heightPixels; 

getWindow().setLayout((int) (width * .8), (int) (height * .5)); 
İlgili konular