Cheesegraterr
Cheesegraterr

Reputation: 517

LinearLayout expanding elements

I have a imageView and a linear layout inside a linear layout. It looks like this: enter image description here

What I want to happen is have the second linear layout with all of the buttons and params be a fixed height, and then have the image view height be dynamic depending on whatever the size of the screen is. So if there is a large screen then the image will be large and the button and sliders will always be the same.

Here is a snippet of what I have:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
>


<ImageView
    android:id="@+id/imgPreview"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:visibility="visible"
    android:layout_gravity="center_vertical|right"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:scaleType="centerCrop"
    />


<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="fill_parent">

Is there an easy way to do this?

Upvotes: 1

Views: 1934

Answers (2)

Mike M.
Mike M.

Reputation: 39191

You can do this by giving the ImageView a layout_height of 0dp and setting its layout_weight to 1. The inner LinearLayout will have its layout_height set to wrap_content.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" >

    <ImageView
        android:id="@+id/imgPreview"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:visibility="visible"
        android:scaleType="centerCrop" />

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Your button and slider content here>

    </LinearLayout>

</LinearLayout>

Upvotes: 3

RobertM
RobertM

Reputation: 297

Yes, you can do this using:

android:layout_height="0dp"
android:layout_weight="YOUR VALUE" 

Upvotes: -1

Related Questions