From e0f23aa956f751fca704c8ccae084641a3e36eda Mon Sep 17 00:00:00 2001 From: Peng Li Date: Tue, 29 May 2018 00:44:09 +0800 Subject: [PATCH] get the real height include navigation bar --- .../java/ai/suanzi/rtmpclient/MainActivity.java | 44 +++++++++++++++++++--- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java b/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java index c257b9f..fbe69c3 100644 --- a/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java +++ b/app/src/main/java/ai/suanzi/rtmpclient/MainActivity.java @@ -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); -- 2.11.0