在安卓中添加动态网页视图

5
我正在浏览有关此主题的各种链接,但在我这种情况下没有找到任何有用的内容。我想动态创建 Android 中的 Web View,而不向 xml 布局文件添加任何内容。 现在我想特别做两件事: 1. 我想将此 Web View 的大小设置为自定义宽度和高度,并将其设置在布局底部。 2. 一旦网页在 Web View 中加载完成后,单击 Web View 应该调整大小并全屏显示(也就是在其父布局中填充整个宽度和高度)。
我的当前代码看起来像以下内容,但全屏无法很好地适应屏幕内容:
public class MainActivity extends Activity {


    RelativeLayout layout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        layout=(RelativeLayout)findViewById(R.id.test);

        final WebView web = new WebView(this);

        //web.setId(1);
        web.getSettings().setJavaScriptEnabled(true);
        web.loadData("<script type=\"text/javascript\" src=\"http://www..myurl.com/myfolder/banner.php\"></script>", null, null);

        layout.addView(web, new LayoutParams(300,100));


        web.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                web.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
                return false;
            }
        }); 
    }   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

你能否发布两种情况的屏幕截图以便更好地理解吗? - M D
1个回答

5
如果我正确理解了您的问题,您可能需要考虑以下方法。
首先,声明并初始化(父)相对布局,连同其参数,并将其设置为内容视图(删除setContentView(R.layout.activity_main);)。
    final RelativeLayout layout = new RelativeLayout(this);

    final RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            getWindowManager().getDefaultDisplay().getWidth(),
            getWindowManager().getDefaultDisplay().getHeight());

    layout.setLayoutParams(params);

    setContentView(layout);

接下来,初始化 web 视图及其参数,并将“底部规则”添加到参数中。

    final WebView web = new WebView(this);

    web.getSettings().setJavaScriptEnabled(true);
    web.loadData(
            "<script type=\"text/javascript\" src=\"http://www..myurl.com/myfolder/banner.php\"></script>",
            null, null);

    RelativeLayout.LayoutParams webViewParams = new RelativeLayout.LayoutParams(
            300, 100);
    webViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

最后,将Web视图添加到您的(父)相对布局中,并添加其监听器。
    layout.addView(web, webViewParams);

    web.setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View arg0, MotionEvent arg1) {
            web.setLayoutParams(params);
            return false;
        }
    });

希望这是您需要的内容。
祝好!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接