在横向显示WebView而不旋转屏幕

时间:2014-11-03 09:14:41

标签: android android-webview

我有一些WebView的内容,它在横向格式中会更好看。我找到了一些解决方案,这些解决方案可以让我在显示WebView时强制横向调整,从而实现目标,但是我不喜欢这种方式。

特别是,我认为让实际的屏幕旋转突然改变,没有任何警告而且没有请求这个,这是一个很好的用户体验,所以你眼前的一切旋转,状态栏等等从一端移到另一边。

我希望实际的屏幕旋转保持不变,因此如果它是目前设置的那样,它将保持纵向。所需要做的就是WebView中的页面以横向显示在横向上。

这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试创建自定义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>