【问题标题】:Drawing with Transparent Paint on Android在 Android 上使用透明油漆绘图
【发布时间】:2015-01-16 11:19:34
【问题描述】:

当我在 Android 的普通 2D 画布上使用 PaintColor.TRANSPARENT 时,我没有得到任何结果,我的意图是删除画布上的一些内容。我的意思是我要处理的内容不会消失。

这是我Paint的代码:

mPointFillPaint = new Paint();
mPointFillPaint.setColor(Color.TRANSPARENT);
mPointFillPaint.setAntiAlias(true);
mPointFillPaint.setStyle(Paint.Style.FILL);
mPointFillPaint.setStrokeJoin(Paint.Join.MITER); 

【问题讨论】:

    标签: android canvas 2d draw paint


    【解决方案1】:

    以下Paint 配置应该会有所帮助:

    mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    mPaint.setColor(Color.TRANSPARENT);
    mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT));
    mPaint.setAntiAlias(true);
    

    【讨论】:

      【解决方案2】:

      我发现使用

      mPaint.setColor(Color.TRANSPARENT);
      mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT));
      

      mPaint.setColor(Color.TRANSPARENT);
      mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
      

      刚刚把我的油漆弄黑了。

      我有另一种方法是在我的 colors.xml 中引入透明颜色

          <color name="transparentColor">#00ffffff</color>
      

      我选择了“00ffffff”案例,但我很确定“00000000”也可以使用,具体取决于您的案例。

      最终代码如下:

          mPaint = new Paint();
          mPaint.setAntiAlias(true);
          mPaint.setColor(getResources().getColor(R.color.transparentColor));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-04
        • 1970-01-01
        • 1970-01-01
        • 2020-01-16
        • 1970-01-01
        • 1970-01-01
        • 2016-09-01
        相关资源
        最近更新 更多