背景として機能するグラデーションを使用して、画像に TextView をオーバーレイしました。ただし、画像でわかるように、何らかの理由で TextView は代わりに android:startColor 色を無地の背景として使用しています。
勾配.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:endColor="#00000000"
android:startColor="#FF999999"
android:angle="90"/>
</shape>
MainActivity での onCreate
View overlay = (View) findViewById(R.id.overlay);
overlay.setBackgroundResource(R.drawable.gradient);
FrameLayout.LayoutParams params =
new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, 250);
params.gravity = Gravity.BOTTOM;
overlay.setLayoutParams(params);
overlay.invalidate(); // update the view
main_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#999999"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="250dp"
>
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/statement_header" />
<View
android:id="@+id/overlay"
android:layout_width="fill_parent"
android:layout_height="100dp"
/>
<TextView android:id="@+id/tvHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textStyle="bold"
android:text="Our Story"
android:textColor="#FFFFFF"
android:background="#00000000"
android:maxLines="1"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_gravity="bottom" android:layout_alignParentBottom="true"
/>
</FrameLayout>