canvas.clipPath() を使用して、APP デモのクリッピング アクティビティと同様に、拘束円内にビットマップ イメージを描画しようとしています。問題は、私のコードがエミュレーターでのみ適切にレンダリングされることです。実際の Samsung Galaxy Nexus 4.2 で実行すると、clipPath が長方形のクリッピングのように機能するように見えます。私は完全に困惑しています!新しい Path() を作成し、ビュー ctor でビットマップをデコードします。助言がありますか?
@Override
protected void onDraw(Canvas canvas) {
Point point = getPoint();
path.reset();
canvas.clipPath(path); // makes the clip empty
path.addCircle(point.x, point.y, getScale() * 140, Path.Direction.CCW);
canvas.clipPath(path, Region.Op.REPLACE);
Point scaledSize = new Point((int) (bitmapSize.x * getScale()), (int) (bitmapSize.y * getScale()));
Point topLeft = new Point((point.x - (scaledSize.x / 2)), (point.y - (scaledSize.y / 2)));
canvas.drawBitmap(bitmap, null, new Rect(topLeft.x, topLeft.y, topLeft.x + scaledSize.x, topLeft.y + scaledSize.y), paint);
}
ギャラクシー ネクサス
エミュレータ