我在相对布局中有一个线性布局,xml文件中线性布局的默认宽度和高度分别为250和150,看起来不错。但当我在运行时调整它的大小,并再次将宽度和高度设置为250和150时,它看起来不像以前,而且在视觉上宽度和高度似乎比以前小。我使用此代码在运行时调整大小:
LinearLayout ll = (LinearLayout)findViewById(R.id.myLayout);
ll.getLayoutParams().height=150;
ll.getLayoutParams().width=250;
ll.requestLayout();
ll.invalidate();
我认为我们在运行时设置的值是以像素为单位,而不是以dip为单位,但我不确定。如果是真的,我如何在运行时更改宽度和高度的单位?
请改用DP,下面是一种转换为DP:的方法
int valueInDP= (int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, YOURVALUE, getResources().getDisplayMetrics());
对于PX中的某个值,如250 ,请关闭YOURVALUE
这样尝试:
Layoutparams params=ll.getlayoutparams();params.height=300;params.width=200;ll.setlayoutparams(params);