我有一个webview,我希望能够以编程方式更改所显示页面的方向。 当用户通过在我的清单文件中设置此更改手机的方向时,我阻止再次重新创建我的活动。
android:screenOrientation="nosensor"
android:configChanges="orientation|screenSize|keyboardHidden"
但是,在我的某个标签上,我想以编程方式在用户更改网页时更改网页的方向。所以我想听取手机定向的变化并相应地改变页面视图的变化。目前,当手机的方向更改为横向时,网页仍会以纵向显示。
有人可以帮忙吗?
答案 0 :(得分:1)
如果您只想旋转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>
请记住,这只是旋转屏幕上显示的视图,任何链接等都无法正常工作,因为它不会将触摸坐标重新映射到相应点的新位置。
答案 1 :(得分:0)