背景渐变与每页上的图像相结合

时间:2013-03-15 10:21:04

标签: android android-layout background-image background-color android-xml

有没有办法制作一个带有渐变的xml文件,用于我的应用程序的背景,同时将徽标放入其中。

所以当我设置布局的背景时,我会得到带有我的徽标的渐变。

当然,可以只定义渐变,并在每个页面上删除徽标,但这不是我想要实现的方式吗?

我尝试将两者结合在一个xml文件中,但这样做并没有解决问题。

由xml和logo创建的渐变是一个图像1个xml文件,并在每个页面上使用它。当我在background.xml中更改徽标时,我需要在每个其他页面上进行更改。

我想使用以下xml作为我所有布局的背景

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
    android:startColor="#000"
    android:endColor="#008d36"
    android:gradientRadius="326"
    android:type="radial"/>
</shape>


<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginRight="18dp"
    android:layout_marginTop="89dp"
    android:layout_toLeftOf="@+id/logo"
    android:src="@drawable/logo" />

1 个答案:

答案 0 :(得分:4)

是的,可以从XML布局中提供渐变。

但是在您的场景中,您想要将Gradient用于徽标吗?

简要说明您的要求。

在res中创建drawable文件夹并创建xml名称是gradient.xml并复制这些代码。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<gradient
    android:endColor="#008d36"
    android:gradientRadius="326"
    android:startColor="#000"
    android:type="radial" />

</shape>

这些代码也在主layout / main.xml中正确

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
   <RelativeLayout
    android:id="@+id/imageView1"
    android:layout_width="100dip"
    android:layout_height="100dip"
    android:background="@drawable/gradient" >

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:src="@drawable/yourlogoimage" />
    </RelativeLayout>

</LinearLayout>