6

Immaginate che ho un'immagine rettangolo. Come potrei creare uno stile come il prossimo?Come creare un cerchio clippath da un'immagine?

enter image description here enter image description here

Voglio dire, ritagliando l'immagine in un cerchio, aggiungere il confine, l'ombra e l'effetto lordo/lucentezza. Fino ad ora, ho solo provato questo codice snippet per ritagliare l'immagine: Cropping circular area from bitmap in Android ma proprio quello. Non ho idea di come fare i restanti componenti in Android.

+0

vi posto un'implementazione angolo rotondo, spero che ti aiutano, http://stackoverflow.com/a/19858771/1294681 – VinceStyling

risposta

16

Un modo semplice per ottenere questo effetto è quello di utilizzare Canvas.drawCircle() e un BitmapShader:

BitmapShader s = new BitmapShader(myPhoto, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); 

Paint p = new Paint(); 
p.setShader(s); 

myCanvas.drawCircle(centerX, centerY, radius, p); 

Per fare l'ombra, è sufficiente chiamare Paint.setShadowLayer() sulla vernice (questo funziona solo se si disegna l'effetto in un fuori campo Bitmap o se il vostro View utilizza uno strato software - set chiamando View.setLayerType() -).

Il bordo può essere disegnato disegnando un altro cerchio sulla parte superiore, utilizzando lo stile Paint.Style.STROKE (che è possibile impostare chiamando Paint.setStyle()).

Infine puoi disegnare il lucido disegnando un cerchio, un ovale o Path sopra la tua primissima cerchia. Avrete bisogno di usare uno shader LinearGradient sulla vernice e avrete anche bisogno per ritagliare la brillantezza. È possibile farlo in due modi:

  1. Se si sta disegnando l'intero effetto in un Bitmap, che è quello che mi sento di raccomandare, è sufficiente impostare la vernice Xfermode ad un new PorterDuffXfermode(PorterDuff.Mode.SRC_IN).
  2. Se si sta disegnando l'effetto direttamente sullo schermo si può semplicemente utilizzare Canvas.clipPath() per impostare una clip circolare. Si noti che questo funzionerà con l'accelerazione hardware solo a partire da Android 4.3.
Problemi correlati