代码中动态设置view或布局的宽高
有时我们需要在应用中动态改变图片或某一块布局的大小。这就不能用XML文件写成固定值,而需要在java代码中动态设置。效果如下:
网上有一些教程使用relativeView.setLayoutParams(new RelativeLayout.LayoutParams(100,200));的方法,可是发现这样设置很容易抛错;
因此有人指出不能直接新建一个LayoutParams的同时设置宽高值,需要先实例化一个对象,再进行具体参数的设置,然后再设置,如下:
RelativeLayout.LayoutParams Params = (RelativeLayout.LayoutParams)mView.getLayoutParams();
Params.height = 100;
mView.setLayoutParams(linearParams);
然而这时候你一定要注意强制类型转换时的LayoutParams类型,因为android中存在3种LayoutParams,即RelativeLayout.LayoutParams、LinearLayout.LayoutParams、ViewGroup.LayoutParams,那么我们改用哪一个呢?
--要看你要操作的view在布局文件中的父控件是什么类型的,若父控件是RelativeLayout则需要强制转换为RelativeLayout.LayoutParams,其它类型依次类推。
Aactivity代码: