如何将背景位图设置为rect或rectF?

时间:2011-08-08 07:20:46

标签: android canvas

有没有办法为画布中绘制的矩形设置背景图像? 例如,我有以下onDraw方法:

protected void onDraw(Canvas canvas) {
    this.setBackgroundGradient();
    RectF rect = new RectF();
    rect.set(0, 0, canvas.getWidth(), 50);
    canvas.drawRoundRect(rect, 0, 0, this.paint);
}

private void setBackgroundGradient()
{
    this.paint.setShader(new LinearGradient(0, 0,0, getHeight(), 0xff919191, 0xff424242, Shader.TileMode.MIRROR));
}

我想用背景图像更改渐变(如果可能,可重复)。

注意:我宁愿保留矩形而不使用drawBitmap。

1 个答案:

答案 0 :(得分:1)

Rect不是drawable,它是一个便利类,只保存定义rect的四个值。 Canvas知道如何用你给它的Paint对象绘制一个rect。 如果你想要一个背景(图像)而不是一个矩形,那么你要么在画布上使用drawBitmap,要么有一个(位图)drawable,你在绘制时将画布传递给它。