使用drawable向android按钮添加渐变

时间:2013-08-23 05:44:45

标签: android

我想创建一个包含渐变和图像的按钮,如下所示: enter image description here

图像的背景应该是渐变的。

2 个答案:

答案 0 :(得分:2)

<ImageView
            android:id="@+id/ivdpfirst"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="@drawable/sidebutton"
            android:src="@drawable/ic_me1" />

drawable文件夹中的sidebutton.xml:

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

<item><shape>
        <gradient android:angle="270" android:endColor="#000000" android:startColor="#396AA1" />

        <stroke android:width="1dp" android:color="#000000" />

        <corners android:radius="5dp" />

        <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
    </shape></item>

</selector>

答案 1 :(得分:0)

关注此https://stackoverflow.com/a/10066352/942224

你可以动态创建渐变可绘制的..使用下面的类

import android.graphics.drawable.GradientDrawable;

public class SomeDrawable extends GradientDrawable {

public SomeDrawable(int pStartColor, int pCenterColor, int pEndColor, int pStrokeWidth, int pStrokeColor, float cornerRadius) {
    super(Orientation.BOTTOM_TOP,new int[]{pStartColor,pCenterColor,pEndColor});
    setStroke(pStrokeWidth,pStrokeColor);
    setShape(GradientDrawable.RECTANGLE);
    setCornerRadius(cornerRadius);
}

}

并使用此课程如下

SomeDrawable drawable = new SomeDrawable(Color.parseColor("Start Color Code"),Color.parseColor("Center Color Code"),Color.parseColor("End Color Code"),1,Color.BLACK,00);
yourLayout.setBackgroundDrawable(drawable);

您也可以为该视图设置图像资源。