Un ImageView circulaire rapide, parfait pour les images de profil. Celui-ci est basé sur RoundedImageView de Vince Mi qui lui-même s'appuie sur les techniques préconisées par Romain Guy.
Il utilise un BitmapShader et ne :
Comme il s'agit simplement d'un ImageView personnalisé et non d'un Drawable personnalisé ou d'une combinaison des deux, il peut être utilisé avec toutes sortes de drawables, c'est-à-dire un PicassoDrawable de Picasso ou d'autres drawables non standard (nécessite cependant quelques tests).
dependencies {
...
implementation 'de.hdodenhof:circleimageview:3.1.0'
}
< de .hdodenhof.circleimageview.CircleImageView
xmlns : app = " http://schemas.android.com/apk/res-auto "
android : id = " @+id/profile_image "
android : layout_width = " 96dp "
android : layout_height = " 96dp "
android : src = " @drawable/profile "
app : civ_border_width = " 2dp "
app : civ_border_color = " #FF000000 " />
adjustViewBounds
n'est pas prise en charge car elle nécessite un ScaleType non pris en chargenoFade()
, pour Glide, utilisez dontAnimate()
. Si vous souhaitez conserver l'animation fadeIn, vous devez récupérer l'image dans une Target
et appliquer vous-même une animation personnalisée lors de la réception du Bitmap
.TransitionDrawable
avec CircleImageView
ne fonctionne pas correctement et conduit à des images gâchées. Comment puis-je utiliser un VectorDrawable
avec CircleImageView
?
Réponse courte : vous ne devriez pas. Utiliser un VectorDrawable
avec CircleImageView
est très inefficace. Vous devez modifier vos vecteurs pour qu'ils aient une forme circulaire et les utiliser à la place avec un ImageView normal.
Pourquoi CircleImageView
n'étend-il pas AppCompatImageView
?
L'extension AppCompatImageView
nécessiterait l'ajout d'une dépendance d'exécution pour la bibliothèque de support sans aucun avantage réel.
Comment puis-je ajouter un sélecteur (par exemple un effet d'entraînement) lié à un cercle ?
Il n'existe actuellement aucune prise en charge directe pour un sélecteur lié à un cercle, mais vous pouvez suivre ces étapes pour l'implémenter vous-même.
Comment puis-je ajouter un espace entre l'image et la bordure ?
L'ajout d'un espace n'est pas non plus directement pris en charge, mais il existe une solution de contournement.
Copyright 2014 - 2020 Henning Dodenhof
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.