In my application I am trying change background color for each listView item. And for that I am using shapes which in layer-list. Here is my code
drop_shadow.xml
They are both a subclass of Drawable, so you can't cast them to each other, only to their parent classes.
you can create gradient drawable dynamically.. use below class
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);
}
}
and use this class as below
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);
i guess it's better to use separacte colors.xml file for the color of the shape, and use tag, you can delete the .
after all your shape both is the same which is rectangle.
previously i got the same error because i'm using and inside the same xml.