Thiết bị với Ice Cream Sandwich có thể sử dụng các phím mềm trên màn hình và điều này có nghĩa là một số thuộc tính màn hình được thực hiện bằng các phím này. Tôi cần để có được độ phân giải màn hình thực sự, và không phải là độ phân giải trừ đi không gian được thực hiện bởi các phím mềm.Nhận độ phân giải màn hình thực trên thiết bị Ice Cream Sandwich
Tôi đã thử những điều sau đây, nhưng không phải công trình:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
Log.d("SCREEN RES", "Width: " + width + ". Height: " + height);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
height = metrics.heightPixels;
width = metrics.widthPixels;
Log.d("SCREEN RES", "Width: " + width + ". Height: " + height);
Dưới đây là kết quả:
12-19 20:18:42.012: D/SCREEN RES(20752): Width: 1196. Height: 720
12-19 20:18:42.012: D/SCREEN RES(20752): Width: 1196. Height: 720
Độ phân giải màn hình thật là 1280 x 720 pixel, không phải 1196 x 720 pixel.
Bất kỳ ý tưởng nào?
Sửa
Tôi đang sử dụng đoạn mã sau để làm cho ứng dụng toàn màn hình:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Kết luận về cách nhận được độ phân giải thực: http://stackoverflow.com/questions/11824193/htc-sensation-real-resolution – thecr0w