Android Nは分割画面を導入しているため、アプリのウィンドウサイズは元の半分になります。私はgetActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
は、もはや実際のデバイスの画面サイズを返すことがなくなったことを発見しました。分割画面モードでは、ディスプレイの高さはアプリのウィンドウの高さになるからです。実際の画面サイズを取得するために使用できる他のAPIはありますか?Android Nの後で実際の画面サイズを取得する方法は?
1
A
答えて
3
Display.getRealMetrics(DisplayMetrics)
実際の表示サイズが返されます。
+0
この長い間、 'getReal'で始まるコアAPIのメソッドを持つのは本当に面倒です。これをきれいにする必要があります。 – milosmns
-2
私はそれにはまったく適切な解決策を見つけることができませんでしたが、変更されたすべての解像度の濃度DPiで処理しています。ちょうどこのように:
private int getScreenDensityDPI() {
DisplayMetrics metrics = new DisplayMetrics();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
} else {
getWindowManager().getDefaultDisplay().getMetrics(metrics);
}
return metrics.densityDpi;
}
private int getNumberItemsByScreenResolution() {
int densityDPI = getScreenDensityDPI();
if (densityDPI <= 140) {
return 6;
} else if (densityDPI <= 160) {
return 5;
} else {
return 4;
}
}
最も低い濃度DPIは、最高のディスプレイの解像度はあなたのアンドロイドNデバイスになります。
-1
Display
またはDisplayMetrics
を使用して、マルチウィンドウモードで実際のデバイスサイズを取得できます。
用いた表示:
private void findRealSize(Activity activity)
{
Point size = new Point();
Display display = activity.getWindowManager().getDefaultDisplay();
if (Build.VERSION.SDK_INT >= 17)
display.getRealSize(size);
else
display.getSize(size);
int realWidth = size.x;
int realHeight = size.y;
Log.i("LOG_TAG", "realWidth: " + realWidth + " realHeight: " + realHeight);
}
使用DisplayMetrics:
private void findRealSize(Activity activity)
{
DisplayMetrics displayMetrics = new DisplayMetrics();
if (Build.VERSION.SDK_INT >= 17)
{
activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);
}
else
{
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
}
int realWidth = displayMetrics.widthPixels;
int realHeight = displayMetrics.heightPixels;
Log.i("LOG_TAG", "realWidth: " + realWidth + " realHeight: " + realHeight);
}
+0
これのどれもsasmung S7、android 7 –
関連する問題
- 1. Android Emulatorの実際の画面サイズ
- 2. 表示サイズを変更してAndroid Nのpxで画面サイズを取得
- 3. PhoneGap/Cordova AndroidがonDeviceReadyの後に画面サイズを取得する
- 4. Androidで画面サイズをXMLで取得
- 5. 画面の物理サイズを取得する方法は?
- 6. ブートストラップの現在の画面サイズを取得する方法は?
- 7. デバイスの画面サイズを取得する方法は?
- 8. xamarinで画面サイズを取得する
- 9. 実際の画像サイズは、サイズ変更後に取得します
- 10. Androidで画像のサイズを取得する方法は?
- 11. Androidでファイルの実際のパスを取得する方法は?
- 12. カメラの画面サイズを取得する方法
- 13. イメージリストのイメージの実際のサイズを取得する方法
- 14. Androidタブレット画面サイズのサポート方法
- 15. Androidのホーム画面でアイコンのサイズを増やす方法は?
- 16. スクロールバーで確実に画面の幅を取得する方法
- 17. Unity2d Screen.widthキャンバスパネルの実際の画面サイズをAndroidデバイスで返します
- 18. Androidでナビゲーションバーの高さを実際に取得する方法
- 19. ソフトキーボードのサイズを含む画面の解像度を取得する方法は?
- 20. androidのPDFファイルの実際のパスを取得する方法
- 21. ペーパークリップ得る実際の画像サイズ
- 22. AndroidのOpenGLは画面サイズ
- 23. Javaで画面サイズを取得
- 24. 方向変更後の画面の高さを取得する方法は?
- 25. wpfで実際のデスクトップ画面解像度を取得するには?
- 26. Firefox:ビューポートの実際の画面位置を取得
- 27. Android Nの表示サイズ/画面のズームをアプリで無効にする
- 28. GDKのUnityサイドパネルを除く画面のサイズを取得する方法
- 29. Androidの画面サイズのスケーリング
- 30. ViewHolderを使用して画面サイズを取得する方法は?
は、なぜあなたは、実際の画面サイズをしたいですか? – ianhanniballake
"あなたのアプリのウィンドウサイズはオリジナルの半分になることができます" - フリーフォームのマルチウィンドウモードをサポートするデバイスを取得すると、ウィンドウのサイズは画面の半分以下になります。 – CommonsWare
@ianhanniballakeさんは、あなたのデバイスの画面サイズ(幅、高さ、対角線)、またはユーザーのデバイス画面サイズのデータを収集/記録しようとしているアプリについて、あなたに知らせるユーティリティーアプリを持っていると言えます。私はアンドロイドでそれをやり直す簡単な方法があるのか不思議です。N –