Android - 将位图纹理应用于API绘图例程

时间:2013-02-27 14:28:34

标签: android textures android-canvas porter-duff

我有一个跨越整个屏幕的位图,它将作为我需要绘制到画布的Path对象的纹理。然后我有一个背景图像,需要在这个纹理路径上绘制。

我尝试使用PorterDuff模式,但似乎没有任何工作正常。我很难弄清楚PorterDuff模式究竟是如何起作用的,因为它们似乎都没有按照I always thought they were supposed to function的方式行事。

我已经找到了使用此测试代码构建路径的方法:

Paint paint = new Paint();
    //draw the texture
canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.texture),0,0,paint);
   //construct the Path with an inverse even-odd fill
Path p = new Path();
p.setFillType(Path.FillType.INVERSE_EVEN_ODD);
p.addCircle(this.getHeight()/2, this.getWidth()/2, 200, Path.Direction.CCW);
   //use CLEAR to remove inverted fill, thus showing only the originally filled section
paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.CLEAR));
   //draw path
canvas.drawPath(p, paint);

但我无法弄清楚如何将其置于背景图像之上。我只是使用PorterDuff模式错了吗?

1 个答案:

答案 0 :(得分:0)

也许我的问题可能会引导您找到解决方案:

paint电话中使用的drawPath
什么是油漆风格?
什么是油漆行程宽度?
什么是油漆笔划/填充颜色?

如果你没有使用stoke / fill颜色,而是使用纹理,那么调用paint setShader(使用BitmapShader)在哪里?