如何根据android中的设备dpi设置与宽度成比例的高度

Sco*_*ion 1 android dpi android-imageview

我想修复imageview的高度,但根据不同的设备和dpi.

<ImageView
        android:id="@+id/imgFood"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:scaleType="centerCrop"
        android:src="@drawable/ic_no_img" />
Run Code Online (Sandbox Code Playgroud)

截至目前,我将高度固定为200dp,但我希望保持1:2的比例而不是固定大小.我知道android在dp上工作,但我无法弄清楚如何保持所有设备的比例.宽度将与父级匹配(适合设备宽度),但高度需要相应更改.

有什么想法/建议吗?

Hus*_*zam 5

您可以像这样动态设置高度.

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();

ll.getLayoutParams().height = width/2;
ll.getLayoutParams().width = width;
ll.requestLayout();
Run Code Online (Sandbox Code Playgroud)