如何防止BitmapShader在图像外部绘图

时间:2014-11-12 15:55:32

标签: android android-canvas bitmapshader

我有一个自定义视图,它在一个形状内显示一个图像。 我使用BitmapShader使我的图像适合TileMode为CLAMP的形状 现在我有一个问题,当我移动我的图像时(使用setLocalMatrix方法)它会让我的图像变得很糟糕。 这是我移动时的形象: enter image description here

这是我的代码:

BitmapShader shader=new BitmapShader(sbmp, TileMode.CLAMP, TileMode.CLAMP);
Matrix currMatrix = new Matrix(this.getMatrix());
currMatrix.postTranslate(currX, currY); 
shader.setLocalMatrix(currMatrix);
mpaint.setShader(shader);

1 个答案:

答案 0 :(得分:0)

您可以使用而不是localMatrix翻译图像

int i = canvas.save();
canvas.translate(currX, currY);
//Here draw image
canvas.restoreToCount(i);