我想创建一个包含渐变和图像的按钮,如下所示:
图像的背景应该是渐变的。
答案 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);
您也可以为该视图设置图像资源。