2014-10-08 2 views
1

Я попытался с помощьюКак я могу получить ширину и высоту экрана -Android

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

metrics.heightPixels; 
metrics.widthPixels; 

, но потому что я использую View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY ширина не имеет права. Он показывает размер без панели навигации. но я хочу знать весь размер экрана.

Спасибо!

ответ

3

Это возможно только в API 17 и более поздних версиях. Просто используйте getRealMetrics(metrics) вместо звонка getMetrics(). (Или вы можете позвонить getRealSize(Point), если все, что вам нужно, это размер.) Для подхода к использованию с более ранними уровнями API см. this thread.

0

Сво работает нормально для меня

DisplayMetrics metrics = this.getResources().getDisplayMetrics(); 
int width = metrics.widthPixels; 
int height = metrics.heightPixels; 
+0

моя проблема, что я получаю размер экрана-навигационной панели размером – Alon

+0

, так что вы хотите @Alon ? –

+0

@ AndoMasahashi - OP был довольно ясным: размер экрана без какой-либо регулировки для декора или масштабирующего коэффициента. –

0

Попробуйте

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
Display display = wm.getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int width = size.x; 
int height = size.y; 
+0

попытка не ответ – davidcondrey

0

использовать этот этот код реализован в API 13

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int width = size.x; 
int height = size.y; 

или

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
Display display = wm.getDefaultDisplay(); 
int width = display.getWidth(); // deprecated 
int height = display.getHeight(); // deprecated 
Смежные вопросы