Wie schaffe ich einen Kreis aus einem Bild?

Stellen Sie sich vor, ich habe ein Rechteckbild. Wie könnte ich einen Stil wie den nächsten erstellen?

Bildbeschreibung hier eingebenBildbeschreibung hier eingeben

  • Galaxy Nexus langsam mit Animationen
  • DexedLibs Ordner im Android-Projekt
  • LinearGradient Center Animation
  • Android: Kann ich die Fehler ignorieren "Elternansicht ist kein TextView" und "sendUserActionEvent () mView == null"?
  • ParseSdkContent fehlgeschlagen Die Klasse android.graphics.Typeface konnte nicht initialisiert werden
  • Facebook Android SDK ProfilPictureView Zwischenspeicherung
  • Ich meine, das Bild in einen Kreis zu schneiden, die Grenze, den Schatten und den Brutto-Glanz-Effekt hinzuzufügen. Bis jetzt habe ich nur diesen Snippet-Code ausprobiert, um das Bild zu zuschneiden: Zirkularer Bereich aus Bitmap in Android zu schneiden, aber genau das. Ich habe keine Ahnung, wie die restlichen Komponenten in Android zu tun.

  • Laden von Dateien, die größer als 1M aus dem Assetsordner sind
  • Google Place Picker startet nicht auf Android Mi Telefone
  • Android Multiline Benachrichtigungen / Benachrichtigungen mit längerem Text
  • Android SlidingMenu Bibliothek Installation
  • Android-Geräte-Monitor File Explorer funktioniert nicht mit Android 7 (API 24+)
  • Android-Kamera Vorschau Rotation
  • One Solution collect form web for “Wie schaffe ich einen Kreis aus einem Bild?”

    Ein einfacher Weg, um diesen Effekt zu erreichen, ist die Verwendung von Canvas.drawCircle() und einem 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); 

    Um den Schatten zu machen, ruf einfach einfach Paint.setShadowLayer() auf die Farbe an (dies funktioniert nur, wenn du den Effekt in eine Offscreen- Bitmap View.setLayerType() oder wenn deine View eine Software-Ebene verwendet, die durch Aufruf von View.setLayerType() -) gesetzt wird.

    Die Grenze kann durch Zeichnen eines anderen Kreises auf der Oberseite gezeichnet werden, indem Sie den Paint.Style.STROKE Stil verwenden (den Sie durch Aufruf von Paint.setStyle() .

    Schließlich kannst du den Glanz zeichnen, indem du einen Kreis, einen Oval oder einen Path auf deinem ersten Kreis ziehst. Du musst einen LinearGradient Shader auf deiner Farbe verwenden und du musst auch den Glanz klammern. Sie können dies auf zwei Arten tun:

    1. Wenn du den ganzen Effekt in eine Bitmap Xfermode , was ich empfehlen würde, setze einfach den Xfermode der Farbe auf einen new PorterDuffXfermode(PorterDuff.Mode.SRC_IN) .
    2. Wenn Sie den Effekt direkt auf dem Bildschirm zeichnen, können Sie einfach Canvas.clipPath() , um einen kreisförmigen Clip zu setzen. Beachten Sie, dass dies mit Hardware-Beschleunigung nur wie von Android 4.3 funktionieren wird.
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.