diff options
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt/android/QtNative.java')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt/android/QtNative.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtNative.java b/src/android/jar/src/org/qtproject/qt/android/QtNative.java index 93bc6d8043..f9afa8ae38 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java @@ -51,6 +51,12 @@ import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; +import android.util.Size; +import android.util.DisplayMetrics; +import android.view.WindowManager; +import android.view.WindowMetrics; +import android.graphics.Rect; + public class QtNative { private static Activity m_activity = null; @@ -412,6 +418,23 @@ public class QtNative return new ArrayList<Display>(); } + public static Size getDisplaySize(Context displayContext, Display display) + { + if (Build.VERSION.SDK_INT < 31) { + DisplayMetrics realMetrics = new DisplayMetrics(); + display.getRealMetrics(realMetrics); + return new Size(realMetrics.widthPixels, realMetrics.heightPixels); + } + + Context windowsContext = displayContext.createWindowContext( + WindowManager.LayoutParams.TYPE_APPLICATION, null); + WindowManager displayMgr = + (WindowManager) windowsContext.getSystemService(Context.WINDOW_SERVICE); + WindowMetrics windowsMetrics = displayMgr.getCurrentWindowMetrics(); + Rect bounds = windowsMetrics.getBounds(); + return new Size(bounds.width(), bounds.height()); + } + public static boolean startApplication(String params, String mainLib) throws Exception { if (params == null) |