我正在浏览有关此主题的各种链接。在我的案例中,我没有找到任何有用的东西。我想动态地在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;
}
}
答案 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;
}
});
希望这就是你所需要的。
干杯!