Неплохо было бы переделать это в relativelayout. Ну а чтобы все элементы (и кнопка) поднимались над софт-клавиатурой, нужно в манифест соответствующей активити добавить
android:windowSoftInputMode="adjustResize":
<activity android:name=".MyActivity"
android:windowSoftInputMode="adjustResize">
</activity>
Но тогда картинка-бекграунд у layout тоже будет сжиматься. Этого можно избежать, если задавать фон в onCreate самой активити, и убрать его из xml:
getWindow().setBackgroundDrawableResource(R.drawable.bg);
Сам ImageView тогда можно оставить сверху как есть, тогда он в принципе будет на месте. Правда тогда нужно будет тестить для разных экранов и ориентаций, могут быть косяки. На скорую руку я набросал так (довольно кривая разметка, но для примера сойдет):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/rel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:isScrollContainer="false">
<ImageView
android:layout_width="match_parent"
android:layout_height="160dp"
android:src="@drawable/firebase_lockup_400"/>
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="55dp"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:background="@color/colorPrimary"
android:text="Log In"
android:textAllCaps="false"
android:textColor="#FFFFFF"
android:textSize="17sp"/>
<android.support.design.widget.TextInputLayout
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/button1">
<EditText
android:id="@+id/password_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:inputType="textPassword"
android:textColorHint="@android:color/white"
android:textCursorDrawable="@drawable/star"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/text2">
<EditText
android:id="@+id/email_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter email"
android:inputType="textEmailAddress"
android:textColor="@android:color/white"
android:textCursorDrawable="@drawable/star"/>
</android.support.design.widget.TextInputLayout>
</RelativeLayout>
Выглядит примерно так: