gpt4 book ai didi

Android Webview 以编程方式改变显示网页的方向

转载 作者:行者123 更新时间:2023-11-30 03:49:10 26 4
gpt4 key购买 nike

我有一个 WebView ,我希望能够以编程方式更改显示页面的方向。当用户通过在我的 list 文件中设置它来更改手机的方向时,我可以防止我的 Activity 再次被重新创建。

android:screenOrientation="nosensor"
android:configChanges="orientation|screenSize|keyboardHidden"

但是,在我的一个选项卡上,我想在用户也更改网页时以编程方式更改网页的方向。所以我想听听电话方向的变化并相应地改变页面 View 的变化。目前,当手机的方向更改为横向时,网页仍以纵向显示。

有人可以帮忙吗?

最佳答案

如果您只想旋转 WebView 而不是其他内容,请像这样创建一个自定义 WebView:

public class VerticalWebView extends WebView {
final boolean topDown = true;

public VerticalWebView(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);
}
}

(如果您想以其他方式旋转,请将 topDown 更改为 false)

现在只需在您的 XML 中使用它,如下所示:

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

请记住,这只会旋转屏幕上显示的 View ,任何链接等都将无法工作,因为它不会将触摸坐标重新映射到相应点的新位置。

关于Android Webview 以编程方式改变显示网页的方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14428850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com