34

同じ解像度の 2 つの Android デバイスがあります

Device1 -> 解像度 480x800 対角画面サイズ -> 4.7 インチ

Device2 -> 解像度 480x800 対角画面サイズ -> 4.0 インチ

デバイスの対角画面サイズを見つける方法は?

プログラムで 7 インチと 10 インチのタブレットを検出する

上記のリンクを使用しましたが、両方のデバイスの対角画面サイズが表示されます-> 5.8

4

7 に答える 7

85

このコードを試して、画面サイズをインチで取得してください

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);
于 2013-10-03T10:04:21.857 に答える
12

これはうまくいきませんか?

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); 
于 2013-10-03T09:51:04.980 に答える
8

私がやったことをしている場合は、画面サイズに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 で何を返しますか?

于 2017-01-05T21:42:24.863 に答える
5

これを試して:

 public static Boolean isTablet(Context context) {

    if ((context.getResources().getConfiguration().screenLayout & 
            Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) {

      return true;
  }
    return false;
}
于 2013-10-03T09:43:23.450 に答える
4
DisplayMetrics displayMetrics = context.getResources()
                    .getDisplayMetrics();

文字列 screenWidthInPix = displayMetrics.widthPixels;

文字列 screenheightInPix = displayMetrics.heightPixels;
于 2013-10-03T10:00:36.693 に答える
4

ピタゴラスの定理は、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
于 2013-10-03T10:01:39.320 に答える