2016-07-21 19 views
0

ich eine benutzerdefinierte Ansicht wich haben enthalten einige Bitmaps und ich möchte für sie Schatten setzen, denn das ist, verwende ich diesen Code:erstellen Schatten für Bitmap in benutzerdefinierten Ansicht

shadowPaints=new Paint(Paint.ANTI_ALIAS_FLAG); 
shadowPaints.setShadowLayer(10.0f, 3.0f, 2.0f, Color.BLACK); 
canvas.drawBitmap(bmp, matrix, shadowPaints); 
setLayerType(LAYER_TYPE_SOFTWARE, shadowPaints); 

und mein Ergebnis ist enter image description here als Sie können sehen, mein Schatten ist eigentlich ein anderes Bitmap mit unterschiedlichen x und y-Position, aber was ich will, ist mein Schatten eine Volltonfarbe Bitmap.
kann mir jemand dabei helfen?

+0

Konnten Sie den gesamten Code Ihrer benutzerdefinierten Ansicht posten? – Divers

+0

danke für deine aufmerksamkeit. Es ist zu riesig in Code, aber wenn Sie mir einen Weg zeigen, der in der einfachen benutzerdefinierten Ansicht funktioniert, bin ich mir sicher, dass es auch mit meiner benutzerdefinierten Ansicht funktionieren wird. – max

Antwort

1

setShadowLayer ist eigentlich für das Setzen von Schatten auf Text gedacht.

Wenn Sie die zu zeichnende Bitmap bereits kennen, können Sie in PhotoShop einfach einen Schatten hinzufügen und die Bitmap und den Schatten auf einmal zeichnen.

Wenn Sie das nicht tun wollen, können Sie einen Schatten, indem Sie eine Kopie des Bildes zu machen, using a PorterDuff filter to make it all grey, use Renderscript to blur the image, und es auf der Leinwand in einer x ziehen, y Offset bevor das eigentliche Bild auf Zeichnung davon.

Ich persönlich denke, PhotoShop ist viel einfacher.