如何在Android机器上强制将我的应用纵向放置?

时间:2018-11-29 02:36:10

标签: android

因此,我将这个应用程序设置为以纵向模式显示。当我在android上运行它时,它变为“人像”,但仅在屏幕中央。它不会做您会做的事。例如,在平板电脑上进入纵向模式并占据整个屏幕的平板电脑。

我尝试了每个著名的root访问应用程序,但是他们不能给我root访问权限,以便能够编辑build.prop。 KingRoot甚至说我的设备太坚固了。

所以,我现在计划的是通过代码来完成。我的应用程序非常简单,因此在设计方面不会给我带来很多问题。它只包含一个webview,仅此而已。

我希望它甚至可以在非Android电视盒上使用,因为我们在Android盒上使用了各种类型,如果仅在真正的Android电视盒上使用,这对我来说是个问题。

经过一些试验,我编写了这段代码。

<form id="customer-input">
  <h1>Create Customer</h1>
  <label>
      <span class="label-text">Name:</span>
      <input type="text" name="name">
  </label>
  <label>
      <span class="label-text">Email:</span>
      <input type="text" name="email">
  </label>
  <label>
      <span class="label-text">Phone:</span>
      <input type="text" name="phone">
  </label>
  <button type="submit">Create Customer</button>
</form>
<form id="customer-search">
  <h1>Find Customer</h1>
  <label>
      <span class="label-text">Phone:</span>
      <input type="text" name="phone">
  </label>
  <button type="submit">Find Customer</button>
  <div class="output"></div>
</form>

if(forcePotrait){ webview.setRotation(-90f); int measuredWidth = 0; int measuredHeight = 0; Point size = new Point(); WindowManager w = getWindowManager(); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { w.getDefaultDisplay().getSize(size); measuredWidth = size.x; measuredHeight = size.y; }else{ Display d = w.getDefaultDisplay(); measuredWidth = d.getWidth(); measuredHeight = d.getHeight(); } int[] scrData = getScreenDimension(); ConstraintLayout.LayoutParams lytParams = new ConstraintLayout.LayoutParams(scrData[1], scrData[0]); lytMain.removeAllViews(); lytMain.addView(webview, 0, lytParams); } 是一种获取设备屏幕尺寸的方法。

它旋转getScreenDimension,但它只占据屏幕的一部分,也只显示页面的一部分。我使用WebView作为我的基本布局。我还打开了ConstraintLayout上的Show Layout Bounds,看来Developer Options的绘制不正确,因为红线是中心的几dps,而不是{{ 1}}的显示。

enter image description here 我找到了这个,并在我的项目https://stackoverflow.com/a/26711189/10464730中使用了它。这是链接中的代码。

WebView

现在,我不需要手动旋转WebView。但是public class VWebView extends WebView { final boolean topDown = true; public VWebView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void draw(Canvas canvas) { if (topDown) { canvas.translate(getHeight(), 0); canvas.rotate(90); } else { canvas.translate(0, getWidth()); canvas.rotate(-90); } canvas.clipRect(0, 0, getWidth(), getHeight(), android.graphics.Region.Op.REPLACE); super.draw(canvas); } } 仍然无法填满整个屏幕。

enter image description here

下面的代码使用的值与我在屏幕尺寸方法上获得的值接近,因此我得到了屏幕截图结果。

WebView

enter image description here

0 个答案:

没有答案