安卓Alpha蒙面问题



在我重写的onDraw()函数中,我有一个画布,里面有两个仪表(仪表是PNG的)。仪表叠放在一起。我希望只显示顶部仪表的一半,而显示另一半的底部仪表。到目前为止,我拥有的是:

@Override
public void onDraw(Canvas c){
    int targetWidth=200;
    int targetHeight=200;
    Paint p = new Paint();
    Bitmap bottom = BitmapFactory.decodeResource(getResources(), R.drawable.dashboard_rpm_bottom);
    Bitmap top = BitmapFactory.decodeResource(getResources(), R.drawable.dashboard_rpm_top);
    p.setFilterBitmap(false);
    c.translate(55,320);
    c.drawBitmap(
            bottom,
            new Rect(0, 0, bottom.getWidth(), bottom.getHeight()),
            new Rect(0, 0, targetWidth, targetHeight),
            p);

    p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT));
    c.drawBitmap(
            top,
            new Rect(0, 0, top.getWidth(), top.getHeight()),
            new Rect(0, 0, targetWidth, targetHeight),
            p);

    }

似乎不起作用,有人有什么想法吗?

我能够使用xfermode DST_OUT方法

相关内容

  • 没有找到相关文章

最新更新