我如何使用从Shader(例如LinearGradient)获取drawable,以便我可以在我的UI中将其用作背景?
Cas*_*ash 16
由于后台可能需要调整大小,我们将使用a 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);
}
};
Run Code Online (Sandbox Code Playgroud)
我们用它来创建一个PaintDrawable我们可以用作背景的东西:
PaintDrawable p=new PaintDrawable();
p.setShape(new RectShape());
p.setShaderFactory(sf);
getWindow().setBackgroundDrawable(p);
Run Code Online (Sandbox Code Playgroud)
这只是一个示例,在这种情况下,使用XML声明它实际上会更好.看看这里的例子.
| 归档时间: |
|
| 查看次数: |
5919 次 |
| 最近记录: |