我正在尝试将渐变作为背景添加到我的Android应用中。我首先在 src 目录中创建 drawable 目录并创建 gradient.xml 文件
<shape xmlns:android="https://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#0000ff"
android:endColor="#000000"
android:angle="270" />
</shape>
我还创建了 background.xml 文件
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="2dp" android:color="#EEEEEE" />
<padding android:left="10dp" android:top="20dp"
android:right="10dp" android:bottom="20dp" />
<corners android:bottomRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp"/>
</shape>
然后在我的 activity_main.xml 文件中添加了一个图片视图,并将渐变添加为背景
<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:background="@drawable/gradient" />
</RelativeLayout>
我错过了什么?
答案 0 :(得分:2)
背景是 android:background =“@ drawable / gradient”
但图像视图没有大小。如果使用background.xml作为背景,它应该显示出来。或者指定图像视图的大小而不是使用wrap_content
答案 1 :(得分:1)
显然我需要将渐变应用于 RelativeLayout 。
一旦我这样做,我就能看到背景。不幸的是,图像视图是一个坏主意,我不需要它。这是最终为我工作的东西。
<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="@drawable/gradient">
<TextView
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
答案 2 :(得分:0)
使用选择器可以帮助你:
gradient.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient
android:angle="90"
android:startColor="#FFFF0000"
android:endColor="#FF00FF00"
android:type="linear" />
</shape>
</item>
</selector>