我有一些WebView内容,以横向格式看起来会更好。我找到了一些解决方案,这些解决方案使我能够在显示WebView时强制横向显示,从而实现了目标,但是我不喜欢这种方式。

特别是,我认为在没有警告和要求的情况下突然更改实际的屏幕旋转并不是一种很棒的用户体验,因此,一切旋转都在您眼前,状态栏等从顶部移开到一边。

我希望实际的屏幕旋转保持不动,因此如果当前设置的话,它将保持纵向。所有需要发生的是,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);
    }
}


XML:

<com.my.package.VWebView
    android:id="@+id/myview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</com.my.package.VWebView>

10-05 22:49
查看更多