我有一个布局,我有一个线性布局,重力为中心,使儿童中心对齐。我想以编程方式添加webview并加载youtube视频。问题是webview的高度和宽度是wrap_content ,wrap_content.So在纵向模式下webview工作正常并且在中心对齐,但是当更改横向Web视图的方向变为fill_parent并且水平覆盖屏幕时,内容不会看中心。 here is the layout file
下面是以纵向模式显示结果的图像。 线性布局为绿色,webview为蓝色
这是当你将设备旋转到横向模式时,蓝色的webview会拉伸自己以填充整个屏幕宽度。
我希望webview以横向模式放置在中心,同样它也处于纵向模式?请帮我理解这个和任何修复?
答案 0 :(得分:1)
如果您在WebView中加载视频,那么WebView中的aligment就是html任务。将视频换入<div>
并添加适当的样式(在css
文件中或标记中的style
属性):
<div style="margin:0 auto;width:500px;">
//your video object is placed here
</div>
您也可以在VideoView中播放视频,但这种技术会更难一些。简而言之,您必须在WebView上方添加FrameLayout,通过html文件获取应放置VideoView的坐标,并为VideoView应用带有坐标的LayoutParams。如果方向将更改,则应使用新坐标刷新VideoView。如果您对此感兴趣,我可以分享更多详细信息。
答案 1 :(得分:1)
嗯,我可能来不及了。但是,我的工作:
AndroidManifest.xml
android:configChanges="orientation"
WebViewContainerActivity.java
@Override
public void onConfigurationChanged(Configuration newConfig) {
/* WebView mainView is declared globally */
ConstraintLayout lana = findViewById(R.id.main);
lana.removeView(mainView);
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
int screenHeight = displaymetrics.heightPixels;
lana.addView(mainView, 0,
new ConstraintLayout.LayoutParams(
screenWidth,
screenHeight));
super.onConfigurationChanged(newConfig);
}
它确实有效地工作了,我必须使用它,因为我不了解HTML。
答案 2 :(得分:0)
为什么wrap_content
代表横向布局中的宽度,然后将layout_gravity
设置为"center"
?
答案 3 :(得分:0)
试试这个
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:gravity="center" >
<LinearLayout
android:id="@+id/webViewPlaceholder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00AC0F"
>
</LinearLayout>