同じ解像度の 2 つの Android デバイスがあります
Device1 -> 解像度 480x800 対角画面サイズ -> 4.7 インチ
Device2 -> 解像度 480x800 対角画面サイズ -> 4.0 インチ
デバイスの対角画面サイズを見つける方法は?
プログラムで 7 インチと 10 インチのタブレットを検出する
上記のリンクを使用しましたが、両方のデバイスの対角画面サイズが表示されます-> 5.8
同じ解像度の 2 つの Android デバイスがあります
Device1 -> 解像度 480x800 対角画面サイズ -> 4.7 インチ
Device2 -> 解像度 480x800 対角画面サイズ -> 4.0 インチ
デバイスの対角画面サイズを見つける方法は?
プログラムで 7 インチと 10 インチのタブレットを検出する
上記のリンクを使用しましたが、両方のデバイスの対角画面サイズが表示されます-> 5.8
このコードを試して、画面サイズをインチで取得してください
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);
私がやったことをしている場合は、画面サイズに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);
最後から 2 番目の行に注意してください。scaledDensity に関する詳細情報は次のとおりです: DisplayMetrics.scaledDensity は実際に Android で何を返しますか?
これを試して:
public static Boolean isTablet(Context context) {
if ((context.getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) {
return true;
}
return false;
}
DisplayMetrics displayMetrics = context.getResources() .getDisplayMetrics(); 文字列 screenWidthInPix = displayMetrics.widthPixels; 文字列 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