我正在尝试创建一个简单的android应用程序,在屏幕的顶部和底部显示一个黑条,因为我不喜欢现在所有手机都有的圆屏幕角的新趋势,而且目前似乎没有任何解决这个问题的方法不需要一个根手机。我正在尝试隐藏圆角,以创建一个更传统、更美观的矩形显示外观,使用系统覆盖来绘制所有其他应用程序。这是我当前用于覆盖的代码,基于此https://gist.github.com/bjoernq/6975256
wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
overlayedButton1 = new Button(this);
overlayedButton1.setBackgroundColor(-16777216);
overlayedButton2 = new Button(this);
overlayedButton2.setBackgroundColor(-16777216);
WindowManager.LayoutParams params1 = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, PixelFormat.TRANSLUCENT);
params1.gravity = Gravity.LEFT | Gravity.TOP;
params1.x = 0;
params1.y = 0;
params1.width = 1080;
params1.height = 100;
wm.addView(overlayedButton1, params1);
WindowManager.LayoutParams params2 = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, PixelFormat.TRANSLUCENT);
params2.gravity = Gravity.LEFT | Gravity.BOTTOM;
params2.x = 0;
params2.y = 0;
params2.width = 1080;
params2.height = 100;
wm.addView(overlayedButton2, params2);
结果是在状态栏下方和导航栏上方出现一个黑色条,如图所示
https://i.stack.imgur.com/cbuyd.jpg
我是android开发的新手,所以不知道如何将这些条定位到屏幕的绝对顶部和底部?
另一个问题是,当打开以横向模式运行的应用程序时,我的覆盖应用程序的黑色条也会旋转,因此它们位于屏幕的两侧。
我补充说android:screenorientation=“肖像”的清单文件,但这没有区别。
我怎样才能使黑条停留在屏幕的顶部和底部边缘,而不考虑应用程序的旋转?
1条答案
按热度按时间2g32fytz1#
我认为您可以尝试重新设计activity.xml,如下所示: