【发布时间】:2015-09-11 12:29:44
【问题描述】:
在 Android Studio 中开发应用
我将ImageView 的宽度设置为“match_parent”。
我正在尝试将其高度设置为“宽度/ 3”。换句话说,无论运行它的设备的屏幕尺寸如何,我都试图保持 3:1 的纵横比。
我知道我不能在 XML 中做到这一点,因为您只能将值设置为文字值。
在运行时我可以使用这个语句。
img.getLayoutParams().height = img.getWidth() / 3;
这会起作用,但如果我把它放在onCreate 或 onStart 方法中,getWidth 将返回 0,因为尚未创建视图。必须有一个地方我可以放置此代码,以便它在Activity 启动后运行。
我试过了:
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
float RATIO = 1/3;
setLayoutParams(new RadioGroup.LayoutParams((int)RATIO * w, w));
}
但是onSizeChanged 和setLayoutParams 变成了红色,我不知道我需要把这段代码放在哪里。
【问题讨论】:
标签: java android aspect-ratio