get the real height include navigation bar
authorPeng Li <seudut@gmail.com>
Mon, 28 May 2018 16:44:09 +0000 (00:44 +0800)
committerPeng Li <seudut@gmail.com>
Mon, 28 May 2018 16:44:09 +0000 (00:44 +0800)
app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java

index c257b9f..fbe69c3 100644 (file)
@@ -41,6 +41,8 @@ import android.view.MotionEvent;
 import android.graphics.Color;
 import android.os.Build;
 import android.content.pm.ActivityInfo;
+import android.view.Display;
+import android.graphics.Point;
 
 public class MainActivity extends AppCompatActivity implements MyService.MyServiceEventListener, CameraView.Callback {
 
@@ -163,6 +165,32 @@ public class MainActivity extends AppCompatActivity implements MyService.MyServi
         }
     }
 
+    private class ScreenSize {
+        public ScreenSize(){ }
+        public int width = 0;
+        public int height = 0;
+    }
+
+    private ScreenSize getScreenSize(){
+        ScreenSize size = new ScreenSize();
+        WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
+        final Display display = windowManager.getDefaultDisplay();
+        Point outPoint = new Point();
+        if(Build.VERSION.SDK_INT >= 19) {
+            display.getRealSize(outPoint); // include navigation bar
+        } else {
+            display.getSize(outPoint); // exclude navigation bar
+        }
+        if(outPoint.y > outPoint.x) {
+            size.height = outPoint.y;
+            size.width = outPoint.x;
+        } else {
+            size.height = outPoint.x;
+            size.width = outPoint.y;
+        }
+        return size;
+    }
+
     private void initCameraView (){
 //        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
 //        requestWindowFeature(Window.FEATURE_NO_TITLE);
@@ -184,16 +212,20 @@ public class MainActivity extends AppCompatActivity implements MyService.MyServi
 //            e.printStackTrace();
 //        }
 
-        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//竖屏
 
 
-        DisplayMetrics outMetrics = new DisplayMetrics();
-        this.getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
+        //DisplayMetrics outMetrics = new DisplayMetrics();
+        //this.getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
 
-        CameraView.SCREEN_WIDTH = outMetrics.widthPixels;
-        CameraView.SCREEN_HEIGHT = outMetrics.heightPixels;
-        gLogger.debug("Screen size is w: " + CameraView.SCREEN_WIDTH  + ", h: " + CameraView.SCREEN_HEIGHT);
+        //CameraView.SCREEN_WIDTH = outMetrics.widthPixels;
+        //CameraView.SCREEN_HEIGHT = outMetrics.heightPixels;
+        //gLogger.debug("Screen size is w: " + CameraView.SCREEN_WIDTH  + ", h: " + CameraView.SCREEN_HEIGHT);
 
+        ScreenSize size = getScreenSize();
+
+        CameraView.SCREEN_WIDTH = size.width;
+        CameraView.SCREEN_HEIGHT = size.height;
+        gLogger.debug("Screen size is w: " + CameraView.SCREEN_WIDTH  + ", h: " + CameraView.SCREEN_HEIGHT);
 
 
         mCameraView = new CameraView(getApplicationContext(), this);