Android Alpha Masking вопрос - PullRequest
1 голос
/ 26 мая 2011

в моей переопределенной функции 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);



    }

вроде не работает, у кого-нибудь есть идеи?

1 Ответ

2 голосов
/ 27 мая 2011

Я смог сделать это, используя метод xfermode DST_OUT

...