在画布上使用自定义形状绘制位图

3

我想在画布上绘制以下形状的图像:

enter image description here

黑色部分必须替换为我的图片。我目前将整个图像绘制出来,但不知道如何获得这种形状呢?

    canvas.drawBitmap(header,0,0,mPaint);

有人可以帮我吗?


我理解着shader的作用,但是如何指定形状呢?我需要用一个矩形来实现。我不能在这样的形状中指定一个矩形吗? - user1007522
使用带有lineTo方法的路径。 - pskink
1个回答

6
感谢pskink的帮助,我明白了:
int width = this.getMeasuredWidth();
int height = this.getMeasuredHeight();

BitmapShader shader;
shader = new BitmapShader(header, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);

mPaint.setShader(shader);

Path path = new Path();

path.moveTo(0,0);
path.lineTo(0,height/2);
path.lineTo(width,height/4);
path.lineTo(width,0);

canvas.drawPath(path,mPaint);

只需使用着色器和路径即可完成此任务。

干得好!我希望你学到的比直接得到一个带有工作代码的答案还多。 - pskink
非常感谢!也帮助了我 :) - yahya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接