我有一个覆盖在图像上的TextView,其渐变充当背景。但是正如您在图像中看到的那样,由于某种原因,TextView使用android:startColor颜色作为实心背景。
Gradient.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>
答案 0 :(得分:0)
试试这个
< 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"
android:background="@android:color/transparent"
/>
< 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="@drawable/gradient"
android:maxLines="1"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_gravity="bottom"
android:layout_alignParentBottom="true"
/>
</FrameLayout>
只需尝试使用此布局,无需更改代码中的背景。如果没有必要,请删除View
孩子