0
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">    
    <solid android:color="#EAEAEA"/>    

    <corners android:bottomLeftRadius="5dip"
                android:topRightRadius="5dip"
                android:topLeftRadius="5dip"
                android:bottomRightRadius="5dip"
    />
</shape>

如何将gradient image我的按钮设置为背景。我看到一个属性渐变,但看不到其中包含背景的任何属性。

注意:我是非常新的 Android 开发。

4

3 回答 3

3

我不确定您向我们展示的 XML 与渐变有什么关系。您可以在文件drawable夹中的 XML 文件中定义渐变:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient 
        android:startColor="#FFFFFFFF" 
        android:endColor="#FFD9D9D9"
        android:angle="270"
     />
    <corners android:bottomLeftRadius="5dip"
             android:topRightRadius="5dip"
             android:topLeftRadius="5dip"
             android:bottomRightRadius="5dip"
    />
</shape>

(例如,将其另存为my_gradient.xml

然后在您的布局 xml 文件中,您可以拥有:

<Button android:id="@+id/ButtonStart"
    android:layout_width="100dp" android:layout_height="wrap_content"
    android:background="@drawable/my_gradient"
    android:textColor="@color/white" android:textSize="14sp"
    android:textStyle="bold" android:text="@string/game_start"/>
于 2012-10-18T13:56:52.013 回答
2

您应该在 XML 中定义渐变或使用图像(包括圆角)。您不能轻松地将 XML 形状与图像混合在一起(至少,因为您是初学者,我建议您先使用简单的东西)。

例如:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#474946"
        android:endColor="#181818"
        android:angle="270"/>
    <corners android:radius="5dp" />
</shape>

然后您可以使用android:background="@drawable/bg_custom_button"

您应该了解九个补丁,它们允许您为您的背景定义可拉伸的图像,并且当设计不适用于 XML 时,它们可以帮助您。

于 2012-10-18T13:55:50.680 回答
2

您的形状方向正确,但您可以使用渐变而不是实体

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">    
     <gradient
        android:angle="270"
        android:endColor="@color/gradient_bottom"
        android:startColor="@color/gradient_top" />    

    <corners android:bottomLeftRadius="5dip"
            android:topRightRadius="5dip"
            android:topLeftRadius="5dip"
            android:bottomRightRadius="5dip"
    />
</shape>

假设上述形状保存为 gradient_background.xml 并且您将其保存在可绘制文件夹中(它应该在哪里)。您现在可以将此可绘制对象用作按钮的背景

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/gradient_background"
    android:text="Button" />
于 2012-10-18T13:59:31.823 回答