当初始化Activity后,可以动态的改变一些控件的参数,在设置参数时需要注意一个问题:
其参数的类型必须是该控件所在Layout的LayoutParams类型的参数
比如以下布局
FrameLayout fl = new FrameLayout(this);
fl.setBackgroundColor(Color.WHITE);
vv = new VideoView(this);
vv.setLayoutParams(new LayoutParams(500, 500));
Uri mUri = Uri.parse("/mnt/sdcard/beauty.mp4");
MediaController mc = new MediaController(this);
vv.setMediaController(mc);
vv.setVideoURI(mUri);
fl.addView(vv);
FrameLayout.LayoutParams flp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,FrameLayout.LayoutParams.WRAP_CONTENT);
addContentView(fl, flp);
上边的控件VideoView,可以动态的改变其位置,使得播放视频的VideoView层在屏幕上移动位置。在设置参数时应该设置为
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(500, 500);
lp.leftMargin = 200;
lp.topMargin = 50;
vv.setLayoutParams(lp);
因为VideoView所在的Layout为FrameLayout,所以在设置参数时必须是FrameLayout.LayoutParams类型的参数,否则会报参数不匹配的错误