Android 2.2で完全に機能するコードがいくつかありますが、Android4では黒いビューしか生成されません。これがonDrawメソッドです。
//Object initialization
Paint paint=new Paint();
PorterDuffXfermode exclude=new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT);
paint.setAntiAlias(true);
paint.setDither(true);
//The dimensions are OK and they are at the center of the screen
canvas.drawBitmap(mask, screenWidth / 2 - pixelsToSp(100), screenHeight / 2 - pixelsToSp(100), paint);
paint.setXfermode(exclude);
//PS:targetRect is a portion of screen
canvas.drawBitmap(source, null, targetRect, p);
paint.setXfermode(null);
PS:マスクとスポットライトは2つのビットマップです。
Xfermodeを設定せずに、2つのビットマップをペイントします(私のスコープでは正しくありませんが、適切な場所に適切なサイズで描画されます)