一、 方法
使用getLayoutParams()和setLayoutParams()方法
二、 示例代码
LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) aaa.getLayoutParams(); //取控件aaa当前的布局参数
linearParams.height = 365; //当控件的高强制设成365象素
aaa.setLayoutParams(linearParams);//使设置好的布局参数应用到控件aaa
三、 原理
a) getLayoutParams()和setLayoutParams()都是控件基类view的public方法,在外部也可以直接调用
b) 由于LayoutParams一般是在加入容器中设置的,所以容易混淆我们所指定的布局属性究竟是保存在容器中,还是控件本身的属性,答案是控件本身。但是在设置时还是要注意布局属性与容器种类密切相关
以上代码是在LinearLayout布局界面的控件设置,如果是在Framlayout布局界面的话就需要是:
mediacontroller_infor=(LinearLayout) super
.findViewById(R.id.mediacontroller_infor);
//xlh_add
FrameLayout.LayoutParams ll =(FrameLayout.LayoutParams) mediacontroller_infor.getLayoutParams(); //取控件当前的布局参数
ll.height = height/4;// 控件的高强制设成 1/5
ll.width=width/9*5; //1/3
mediacontroller_infor.setLayoutParams(ll); //使设置好的布局参数应用到控件
注意:
获取手机或机顶盒等设备的分辨率需要在全屏界面的Activity的onCreate方法中获取:
public int width=0;
public int height=0;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.videoview_tv);
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
width = metric.widthPixels;
height=metric.heightPixels;
}