以下に定義されているレイアウトがあります
<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>
このようになります
イメージビューの左側の内容に基づいてイメージビューを縮小したい。たとえば、欠落しているフィールドがほとんどなく、フィールドの高さの合計が画像の高さよりも小さい場合は、縮小する必要があります (以下に示すように)。
画像の左側のフィールドの高さの合計が指定された画像の高さより大きい場合、以下のように指定された高さを保持する必要があります
ここで説明されているように、イメージビューを拡張し、イメージビューの縦横比を調整してイメージビューの高さ/幅を変更してみましたカスタムイメージビュー。しかし、問題は、によって返される親の高さがMeasureSpec.getSize(heightMeasureSpec)
、左側のフィールドが占める正確な高さを返さないことです (これは、すべての子の onMeasure が返された後にのみ利用可能になるためです)。したがって、このアプローチは私をどこにも連れて行きませんでした。
この望ましい動作を実現するにはどうすればよいですか?