Макет Android с соотношением сторон не может показать childs, который относится к родителю

Я пытаюсь сделать RelativeLayout с соотношением сторон 2:1. Макет изменяет размеры должным образом, а также ImageView в этом RelativeLayout выглядит хорошо. Но TextView не видно, и это из-за атрибута android:layout_centerInParent="true" Использование любого из атрибутов, которые выравнивают, центрирует и т. Д. Родительских причин, что представление не видно. Как это исправить?

MyRelativeLayout:

 @Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    // TODO Auto-generated method stub
    super.onMeasure(MeasureSpec.makeMeasureSpec(widthMeasureSpec, MeasureSpec.EXACTLY),
            MeasureSpec.makeMeasureSpec(widthMeasureSpec/2, MeasureSpec.EXACTLY));
}

<com.stikyapp.MyRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<ImageView android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@color/green"/>

<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="textView1"/>

</com.stikyapp.MyRelativeLayout>

Если я использую соотношение сторон 1:1, которое является квадратным, все это работает с этим кодом

super.onMeasure(widthMeasureSpec, widthMeasureSpec);

1 ответ

Я думаю, что вы можете использовать AspectRatioLayout

<com.sherlock.aspectratio.AspectRatioLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:widthHeightRatio="2" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    <!-- your imageview -->
    </RelativeLayout>
</com.sherlock.aspectratio.AspectRatioLayout>
Другие вопросы по тегам