Как получить размер экрана устройства android?
У меня есть два android-устройства с одинаковым разрешением
Device1 - > разрешение 480x800 диагональный размер экрана - > 4,7 дюйма
Device2 - > разрешение 480x800 диагональный размер экрана - > 4.0 дюймов
Как найти размер диагонального экрана устройства?
обнаружение 7-дюймовый и 10-дюймовый планшет программно
Я использовал приведенную выше ссылку, но она дает диагональный размер экрана устройства - > 5.8
6 ответов
попробуйте этот код, чтобы получить размер экрана в дюймах
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);
Это не сработает?
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);
Не забудьте умножить размер экрана на масштабируемость, если вы делаете то, что я сделал, и измените размер материала на основе размера экрана. например:
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 материал:что DisplayMetrics.scaledDensity на самом деле вернуться в Android?
DisplayMetrics displayMetrics = context.getResources() .getDisplayMetrics(); String screenWidthInPix = displayMetrics.widthPixels; String screenheightInPix = displayMetrics.heightPixels;
теорема Пифагора чтобы найти диагональный размер экрана телефона/планшета 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
попробуйте это:
public static Boolean isTablet(Context context) {
if ((context.getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) {
return true;
}
return false;
}