Android 在不旋转屏幕的情况下以横向方式显示WebView

Android 在不旋转屏幕的情况下以横向方式显示WebView,android,android-webview,Android,Android Webview,我有一些网页视图的内容,在横向格式下看起来会更好。我已经找到了一些解决方案,使我能够在显示WebView时强制进行横向定位,这实现了目标,但我不喜欢这种方式 特别是,我不认为在没有警告和请求的情况下突然改变屏幕的实际旋转是一种很好的用户体验,因此所有东西都在你眼前旋转,状态栏等从上到下移动 我更希望实际的屏幕旋转不受影响,因此,如果当前设置的是纵向的,它将保持纵向。需要做的就是WebView中的页面横向显示 这可能吗?您可以尝试创建自定义网络视图,如: public class VWebView

我有一些网页视图的内容,在横向格式下看起来会更好。我已经找到了一些解决方案,使我能够在显示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:



这在某种程度上是可能的。我只是想知道,从用户的角度来看,它看起来会很奇怪。如果我是一个用户,我的通知栏在移动,这会很好,但如果我看到我的通知栏与我的网页在不同的方向上,我会感到毛骨悚然。这是一个公平的评论,而且我还不确信,从UI的角度来看,在webview中旋转网页的这种替代方法是否更好。我将尝试下面Antonio的聪明建议,看看哪个对用户来说更愉快(或者更少不愉快)。另一个选项是以纵向方式显示网页,并显示一条快速敬酒信息,提示如果用户将屏幕转向一侧,网页可能会看起来更好(更适合屏幕)。谢谢您的建议。我认为方法VerticalWebView(…)应该是VWebView(…)。当我尝试这一点时,它几乎起作用。网页会旋转,但页面(图表)似乎会在以纵向格式显示时会被切断的位置被切断。这是一个潜在的整洁解决方案!是的,这是我的垂直解决方案,您可以根据需要进行配置。后续。。。我不能完全满足我的需要(我想这是因为我显示的html内容是交互式的,所以用这种方法旋转后可能会不太好)。但是,我认为这是一个有效的解决方案,所以我将其标记为有效解决方案。了解如何以这种方式扩展WebView以创建自定义WebView对我来说也是非常有用的,现在我将这种自定义WebView用于另一个目的(以便在获取WebView的x、y维度后渲染WebView)。所以谢谢你。@drmrbrewer很高兴能帮助你:D!!
<com.my.package.VWebView
    android:id="@+id/myview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</com.my.package.VWebView>