我有一个如下定义的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:orientation="vertical" >
<ImageView
android:id="@+id/movieImageView"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_centerVertical="true"
android:paddingBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:src="@drawable/blank_96_1382x" />
<TextView
android:id="@+id/movieTypeView"
android:layout_width="75dp"
android:layout_height="wrap_content"
android:layout_below="@+id/movieImageView"
android:layout_alignLeft="@+id/movieImageView"
android:maxLines="1"
android:text="Tv Series"
android:textColor="@color/gray"
android:textSize="12sp"
android:gravity="center"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:visibility="gone"
android:textStyle="bold" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_centerVertical="true"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:layout_toRightOf="@id/movieImageView"
android:layout_marginLeft="5dp">
<TextView
android:id="@+id/movieTitleView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="3"
android:text="Shutter Island starring leonardo di caprio"
android:textColor="@color/white"
android:textSize="17sp"
android:textStyle="bold"
android:typeface="sans" />
...
</RelativeLayout>
It would look like this
我希望图像视图根据图像视图左侧的内容缩小。例如,如果缺少几个字段并且字段的高度总和小于图像高度,那么它应该缩小(如下所示)。
If sum of heights of the fields on left side of image is greater than specified image height then it should retain the specified height as below
我尝试扩展图像视图并更改图像视图的高度/宽度,重新调整图像的纵横比,如此处所述自定义图像视图 https://stackoverflow.com/questions/9914810/how-to-set-both-min-and-max-size-for-an-imageview-in-android。但问题是,父级高度返回MeasureSpec.getSize(heightMeasureSpec)
不返回左侧字段占据的确切高度(因为只有在返回所有子项的 onMeasure 后才可用)。所以这种方法并没有带我到任何地方。
我怎样才能实现这种期望的行为?
您应该将 imageView 与线性布局中的 textview 对齐。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true" >
<LinearLayout
android:id="@+id/lnrTextViews"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#cee"
android:gravity="center"
android:maxLines="1"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:text="Tv Series"
android:textColor="#fff"
android:textSize="12sp"
android:textStyle="bold"
android:visibility="visible" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f00"
android:gravity="center"
android:maxLines="1"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:text="Tv Series"
android:textColor="#fff"
android:textSize="12sp"
android:textStyle="bold"
android:visibility="visible" />
</LinearLayout>
<ImageView
android:id="@+id/movieImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/lnrTextViews"
android:layout_alignTop="@id/lnrTextViews"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:paddingBottom="5dp"
android:src="@drawable/songs" />
</RelativeLayout>
复制粘贴此代码并添加一些不同大小的图像和额外的文本视图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)