在android中添加动态Web视图

时间:2014-03-06 12:09:37

标签: android webview android-webview

我正在浏览有关此主题的各种链接。在我的案例中,我没有找到任何有用的东西。我想动态地在Android中创建Web View。我将不会在xml布局文件中添加任何内容。 现在我想特别做两件事:  1.我想将此Web视图的大小设置为自定义宽度和高度,并将其设置在布局的底部。  2.页面加载到Web视图中。单击Web视图时,应调整大小并全屏显示(这意味着在父视图布局中Web视图的宽度和高度上的fill_parent)。

我目前的代码如下所示,由于全屏不适合屏幕内容,因此效果不佳:

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;
    }

}

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,您可能需要考虑以下方法。

首先,声明并初始化(父)相对布局及其参数,并将其设置为内容视图(删除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;
        }
    });

希望这就是你所需要的。

干杯!