2012-04-04 3 views
0

Okay, müssen Sie die Grafik-Experten auf diesem einen Blick. Ich habe eine rechteckige Bitmap (groß) und eine kreisförmige Bitmap (klein). Ich möchte die große rechteckige Bitmap hinter der kleineren kreisförmigen Bitmap platzieren, wobei die größere rechteckige Bitmap die Form der kleineren kreisförmigen Bitmap annimmt (d. H. Die rechteckige Bitmap sollte geclippt oder anderweitig sein). Die kleinere kreisförmige Bitmap weist eine gewisse Transparenz auf, sodass die ausgeschnittene rechteckige Bitmap nach der Transformation angezeigt wird. Ich habe folgendes versucht:Android: Platzieren Sie große Bitmap hinter kleine Bitmap und große Bitmap sollte Form von kleineren Bitmap nehmen

protected void onDraw(Canvas c) { 

int sc = canvas.saveLayer(x, y, x + w, y + h, null, 
           Canvas.MATRIX_SAVE_FLAG | 
           Canvas.CLIP_SAVE_FLAG | 
           Canvas.HAS_ALPHA_LAYER_SAVE_FLAG | 
           Canvas.FULL_COLOR_LAYER_SAVE_FLAG | 
           Canvas.CLIP_TO_LAYER_SAVE_FLAG); 

canvas.drawBitmap(bmpSmallCircular, 0, 0, backgroundPaint); 
backgroundPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP)); 
canvas.drawBitmap(bmpLargeRectangular, 0 , 0, backgroundPaint); 
backgroundPaint.setXfermode(null); 
canvas.restoreToCount(sc); 

} 

So ergibt dies einen Teil der Lösung, sondern die rechteckige Bitmap zieht über die kleinere Bitmap (obwohl es die Form der kleineren übernimmt). Ich vermisse wahrscheinlich etwas Offensichtliches und würde einen Punkt oder einen Schritt in die richtige Richtung begrüßen. Vielen Dank!

Antwort

0

zeichnen zuerst die große Bitmap dann die kleine Bitmap Sie die Anweisung tauschen müssen ziehen nur

canvas.drawBitmap(bmpLargeRectangular, 0 , 0, backgroundPaint); 
canvas.drawBitmap(bmpSmallCircular, 0, 0, backgroundPaint); 
+0

Danke, versucht schon. Da das Rechteck größer als der Kreis ist, erstreckt es sich über den Kreis (nicht was ich brauche). Ich brauche den Kreis, um das Rechteck mit einem Teil des Rechtecks ​​außerhalb des Kreises zu verdecken. – user1312428

+0

können Sie das Bild zeigen, wie Sie tatsächlich wollen und wie Sie derzeit bekommen – Pratik

+0

Versucht, Bild hinzuzufügen, aber da ich neu bin, sieht aus wie das ein Problem ist. Allerdings habe ich ein Beispiel hier hochgeladen: http://img805.imageshack.us/img805/7628/circleoverlay.png Hoffe, dass es durchkommt. Wenn Sie das Bild rechts neben dem Pfeil anzeigen können, ist der Hash-Bereich des Rechtecks ​​nicht sichtbar. Vielen Dank. – user1312428