私は画像のトリミングであるアプリケーションを作成しています。
しかし、Galaxy nexus には問題があります。
Region.Op.DIFFERENCE は機能しません。
Desire(2.3.3) および GalaxyNexus(4.1) エミュレータは正常に動作します。
ただし、GalaxyNexus Real Phone のみでは動作しません
コードを見てください...それはonDrawオーバーライドされたメソッドであり、拡張されたimageviewです
@override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//all rectangle
getDrawingRect(viewRect);
//small rectangle
getDrawingRect(smallRect);
smallRect.left += 100;
smallRect.right -= 100;
smallRect.bottom -= 200;
smallRect.top += 200;
// paint color setting to transparency black
mNoFocusPaint.setARGB(150, 50, 50, 50);
// All Rectangle clipping
canvas.clipRect(viewRect);
// Small Rectangle clipping
canvas.clipRect(smallRect, Region.Op.DIFFERENCE);
// Draw All Rectangle transparency black color it's except small rectangle
canvas.drawRect(viewRect, mNoFocusPaint);
}