Как получить размер экрана устройства Android?
У меня есть два устройства Android с одинаковым разрешением
Device1 → разрешение экрана диагональ экрана 480x800 → 4,7 дюйма
Device2 → разрешение экрана диагональ экрана 480x800 → 4.0 дюйма
Как найти диагональный размер экрана устройства?
Программный анализ 7-дюймового и 10-дюймового планшета
Я использовал указанную выше ссылку, но она дает размер диагонального экрана устройства → 5.8
Ответы
Ответ 1
попробуйте этот код, чтобы получить размер экрана в дюймах
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width=dm.widthPixels;
int height=dm.heightPixels;
double wi=(double)width/(double)dm.xdpi;
double hi=(double)height/(double)dm.ydpi;
double x = Math.pow(wi,2);
double y = Math.pow(hi,2);
double screenInches = Math.sqrt(x+y);
Ответ 2
Это не сработает?
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
double y = Math.pow(dm.heightPixels / dm.ydpi, 2);
double screenInches = Math.sqrt(x + y);
Log.d("debug", "Screen inches : " + screenInches);
Ответ 3
DisplayMetrics displayMetrics = context.getResources()
.getDisplayMetrics();
String screenWidthInPix = displayMetrics.widthPixels;
String screenheightInPix = displayMetrics.heightPixels;
Ответ 4
Теорема Пифагора, чтобы найти диагональный размер экрана телефона Android/планшета Android, тот же самый принцип может быть применен к экрану iPhone или Blackberry.
Попробуйте как показано ниже:
DisplayMetrics met = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(met);// get display metrics object
String strSize =
new DecimalFormat("##.##").format(Math.sqrt(((met.widthPixels / met.xdpi) *
(met.widthPixels / met.xdpi)) +
((met.heightPixels / met.ydpi) * (met.heightPixels / met.ydpi))));
// using Dots per inches with width and height
Ответ 5
Не забывайте умножать размер экрана с помощью scaledDensity, если вы делаете то, что я делал, и меняем размер материала на основе размера экрана. например:.
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
double y = Math.pow(dm.heightPixels / dm.ydpi, 2);
double screenInches = Math.sqrt(x + y) * dm.scaledDensity;
Log.d("debug", "Screen inches : " + screenInches);
Обратите внимание на вторую последнюю строку! Здесь больше информации scaledDensity stuff: Что действительно отображает DisplayMetrics.scaledDensity в Android?
Ответ 6
Попробуйте следующее:
public static Boolean isTablet(Context context) {
if ((context.getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) {
return true;
}
return false;
}