Быстрый круговой ImageView, идеально подходящий для изображений профиля. Он основан на RoundedImageView от Винса Ми, который сам по себе основан на методах, рекомендованных Роменом Гаем.
Он использует BitmapShader и не :
Поскольку это всего лишь пользовательский ImageView, а не пользовательский Drawable или комбинация того и другого, его можно использовать со всеми видами рисунков, например PicassoDrawable от Picasso или другими нестандартными рисунками (хотя требует некоторого тестирования).
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
не поддерживается, поскольку для этого требуется неподдерживаемый ScaleType.noFade()
, для Glide используйте dontAnimate()
. Если вы хотите сохранить анимацию FadeIn, вам необходимо загрузить изображение в Target
и самостоятельно применить пользовательскую анимацию при получении Bitmap
.TransitionDrawable
с CircleImageView
не работает должным образом и приводит к искажению изображений. Как я могу использовать VectorDrawable
с CircleImageView
?
Короткий ответ: не следует. Использование VectorDrawable
с CircleImageView
очень неэффективно. Вам следует изменить векторы, чтобы они имели круглую форму, и вместо этого использовать их с обычным ImageView.
Почему CircleImageView
не расширяет AppCompatImageView
?
Расширение AppCompatImageView
потребует добавления зависимости времени выполнения для библиотеки поддержки без какой-либо реальной выгоды.
Как добавить селектор (например, эффект пульсации), привязанный к кругу?
В настоящее время нет прямой поддержки селектора, ограниченного кругом, но вы можете выполнить следующие шаги, чтобы реализовать его самостоятельно.
Как добавить разрыв между изображением и границей?
Добавление пробела также не поддерживается напрямую, но есть обходной путь.
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.