Поскольку фону, вероятно, потребуется изменить размер, мы будем использовать ShaderFactory
для получения Shader
:
ShapeDrawable.ShaderFactory sf=new ShapeDrawable.ShaderFactory() {
@Override
public Shader resize(int width, int height) {
return new LinearGradient(0, 0, width, height,
new int[]{Color.WHITE, Color.GRAY, Color.BLACK},
new float[]{0,0.5f,1}, Shader.TileMode.MIRROR);
}
};
Мы используем это для создания PaintDrawable
, который мы можем использовать в качестве фона:
PaintDrawable p=new PaintDrawable();
p.setShape(new RectShape());
p.setShaderFactory(sf);
getWindow().setBackgroundDrawable(p);
Это всего лишь пример, и в этом случае было бы лучше просто объявить это , используя XML . Посмотрите на пример здесь .