首页 > 解决方案 > android:在 ImageView 上获取 LinearLayout

问题描述

我希望 ImageView 覆盖屏幕的左半部分,同时保持纵横比和 LinearLayout 在相同位置具有相同的宽度和高度。谁能告诉我如何实现这一目标?

标签: androidlayout

解决方案


我将从这样的布局开始:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/your_linear_layout"
        android:layout_alignParentEnd="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

    </LinearLayout>

    <ImageView
        android:id="@+id/your_image_view"
        android:layout_alignParentEnd="true"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:src="image"/>

</RelativeLayout>

然后在您的活动或片段中,您必须以编程方式设置 LinearLayout 的高度和宽度以匹配 ImageView。

ImageView iv = findViewById(R.id.your_image_view);
int ivHeight = iv.getHeight();
int ivWidth = iv.getWidth(); 

LinearLayout ll = findViewById(R.id.your_linear_layout);
LayoutParams llParams = ll.getLayoutParams();

llParams.height = ivHeight;
llParams.width = ivWidth

ll.setLayoutParams(llParams);

“src”标签将确保保留图像的纵横比。请记住,您也必须以这种方式在旋转后处理调整大小。


推荐阅读