1
假设我有一个LinearLayout
,其中layout_width
设置为fill_parent
。我希望其layout_height
为layout_width
的1.5倍。根据宽度的动态高度
我不能硬编码它,因为在不同的设备屏幕密度不同。
我有问题执行此,因为我发现没有sethight或setWidth方法在View
或ViewGroup
。
假设我有一个LinearLayout
,其中layout_width
设置为fill_parent
。我希望其layout_height
为layout_width
的1.5倍。根据宽度的动态高度
我不能硬编码它,因为在不同的设备屏幕密度不同。
我有问题执行此,因为我发现没有sethight或setWidth方法在View
或ViewGroup
。
在你的活动得到屏幕宽度
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
然后基于您的宽度
View myView = findViewById(R.id.myView);
myView.getLayoutParams().width = displaymetrics.widthPixels * 1.5f;
'fill_parent'并不意味着填满屏幕,并以这种方式它可能是错误的。 – onemach
你不知道,直到运行时的ViewGroup有多大你的视线高度。因此,在运行时,使用布局参数获取布局宽度并将高度设置为宽度* 1.5。 – Simon