DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
Log.e("FirstImage", "Width = "+width+"Height = "+height);
Выше был код, который я использовал для отображения размера экрана. Но проблема в том, что я получаю width=320
и height=569
. Но я использую веху майоры с размером экрана 480x854
Как я могу получить правильный размер?
http://realmike.org/blog/2010/12/21/multiple-screen-sizes-with-processing-for-android/
ссылка имеет отличный ресурс, который рассказывает о разрешении экрана и о том, как получить реальное разрешение экрана и т.д.... прочитайте полностью, вы узнаете о реальности
Тег <supports-screens>
должен определенно работать. См
http://developer.android.com/guide/topics/manifest/supports-screens-element.html
Важным вопросом является то, почему вы не доверяете масштабированным измерениям, которые вы получаете из DisplayMetrics? Если бы вы сделали что-то вроде
canvas.drawRect(new Rect(0,0,width,height), new Paint());
Ваш прямоугольник обязательно заполнит экран. Там происходит масштабирование, но, возможно, вам все равно.
попробуйте это
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display d = wm.getDefaultDisplay();
int height = d.getHeight();
Если вы не установите поддержку больших экранов, вы получите это, я боюсь, потому что экран притворяется меньшим, чтобы показывать приложение (которое, как предполагается, не поддерживает ваш большой экран).
Если вы добавите это в свой манифест, он отобразит правильные значения
<supports-screens
android:largeScreens="true"
android:smallScreens="true"
android:normalScreens="true"
/>
вы даже можете играть с
android:anyDensity
но я не думаю, что это необходимо для вашей текущей проблемы.