Skeuomorphism effect in Android
public class Skeuomorphism {
public static void applyShadowAndPressedState(Button button) {
float radius = 8f;
float[] corners = { radius, radius, radius, radius, radius, radius, radius, radius };
int fillColor = Color.parseColor("#D8D8D8");
int strokeColor = Color.parseColor("#333333");
float strokeSize = 1f;
int shadowColor = Color.parseColor("#8C8C8C");
float shadowSize = 4f;
StateListDrawable stateListDrawable = new StateListDrawable();
ShapeDrawable shapeDrawableNormal = new ShapeDrawable();
shapeDrawableNormal.setShape(new RoundRectShape(corners, null, null));
shapeDrawableNormal.getPaint().setColor(fillColor);
shapeDrawableNormal.getPaint().setStyle(Paint.Style.FILL);
shapeDrawableNormal.setStroke((int) strokeSize, strokeColor);
ShapeDrawable shapeDrawablePressed = new ShapeDrawable();
shapeDrawablePressed.setShape(new RoundRectShape(corners, null, null));
shapeDrawablePressed.getPaint().setColor(fillColor);
shapeDrawablePressed.getPaint().setStyle(Paint.Style.FILL);
shapeDrawablePressed.setStroke((int) strokeSize, strokeColor);
shapeDrawablePressed.getPaint().setShadowLayer(shadowSize, 0, 0, shadowColor);
stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, shapeDrawablePressed);
stateListDrawable.addState(new int[]{}, shapeDrawableNormal);
button.setBackground(stateListDrawable);
}
}