{"id":13605643,"url":"https://github.com/GetStream/avatarview-android","last_synced_at":"2025-04-12T05:34:20.737Z","repository":{"id":37888194,"uuid":"439298917","full_name":"GetStream/avatarview-android","owner":"GetStream","description":"✨ Supports loading profile images with fractional styles, shapes, borders, indicators, and initials for Android.","archived":false,"fork":false,"pushed_at":"2022-10-05T12:47:46.000Z","size":19194,"stargazers_count":432,"open_issues_count":7,"forks_count":26,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-07T10:42:30.826Z","etag":null,"topics":["android","android-library","coil","glide","image","kotlin","loading","loading-images","profile"],"latest_commit_sha":null,"homepage":"https://getstream.github.io/avatarview-android/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GetStream.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2021-12-17T10:44:56.000Z","updated_at":"2024-11-05T11:40:21.000Z","dependencies_parsed_at":"2022-07-14T07:10:28.406Z","dependency_job_id":null,"html_url":"https://github.com/GetStream/avatarview-android","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetStream%2Favatarview-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetStream%2Favatarview-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetStream%2Favatarview-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GetStream%2Favatarview-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GetStream","download_url":"https://codeload.github.com/GetStream/avatarview-android/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248524645,"owners_count":21118612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-library","coil","glide","image","kotlin","loading","loading-images","profile"],"created_at":"2024-08-01T19:01:01.093Z","updated_at":"2025-04-12T05:34:19.267Z","avatar_url":"https://github.com/GetStream.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"\u003ca href=\"https://getstream.io/tutorials/android-chat/?utm_source=Github\u0026utm_campaign=Devrel_oss\u0026utm_medium=avatarview-android\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/24237865/148317308-8b39adb4-2c24-4094-abb7-8ad808fd1f96.png\" /\u003e\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://android-arsenal.com/api?level=21\"\u003e\u003cimg alt=\"API\" src=\"https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/GetStream/avatarview-android/actions/workflows/android.yml\"\u003e\u003cimg alt=\"Build Status\" src=\"https://github.com/GetStream/avatarview-android/actions/workflows/android.yml/badge.svg\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://androidweekly.net/issues/issue-498\"\u003e\u003cimg alt=\"Android Weekly\" src=\"https://skydoves.github.io/badges/android-weekly.svg\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://getstream.github.io/avatarview-android/\"\u003e\u003cimg alt=\"Dokka\" src=\"preview/dokka-avatarview.svg\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n✨ AvatarView supports loading profile images with fractional style, borders, indicators, and initials for Android.\n\u003c/p\u003e\u003cbr\u003e\n\n## Preview\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"/preview/preview7.gif\" width=\"267\"/\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/24237865/146585515-a10a7446-fa47-4e34-9813-89b14177793d.png\" width=\"270\"/\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/24237865/146585501-889b031c-55d1-4822-9d25-1d2c8ff8bd67.png\" width=\"270\"/\u003e\n\u003c/p\u003e\n\n\u003ca href=\"https://getstream.io/tutorials/android-chat/?utm_source=Github\u0026utm_campaign=Devrel_oss\u0026utm_medium=sketchbook\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/24237865/138428440-b92e5fb7-89f8-41aa-96b1-71a5486c5849.png\" align=\"right\" width=\"13%\"/\u003e\u003c/a\u003e\n\n## Contribution 💙\n\nAvatarView is maintained by __[Stream](https://getstream.io/)__.\nIf you’re interested in adding powerful In-App Messaging to your app, check out the __[Stream Chat Tutorial for Android](https://getstream.io/tutorials/android-chat/?utm_source=Github\u0026utm_campaign=Devrel_oss\u0026utm_medium=avatarview-android)__!\nAlso, anyone can contribute to improving code, docs, or something following our [Contributing Guideline](/CONTRIBUTING.md).\n\n## Blog Posts\nLearn how to create stylish, highly-customized profile images using AvatarView for Android.\n- __[AvatarView for Android: Take Your Profile Images to the Next Level](https://getstream.io/blog/avatarview-android/)__\n\n## Download\n[![Maven Central](https://img.shields.io/maven-central/v/io.getstream/avatarview.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22io.getstream%22%20AND%20a:%22avatarview%22)\n\n### Gradle\nAdd the below codes to your **root** `build.gradle` file (not your module build.gradle file).\n```gradle\nallprojects {\n    repositories {\n        mavenCentral()\n    }\n}\n```\nNext, add the below dependency to your **module**'s `build.gradle` file.\n```gradle\ndependencies {\n    implementation \"io.getstream:avatarview-coil:1.0.7\"\n}\n```\n\n\u003e **Note**: The `io.getstream.avatarview-coil` dependency includes [Coil](https://github.com/coil-kt/coil) to load images internally. So if you're using Coil in your project, please make sure your project is using the same Coil version or exclude Coil dependencies to adapt yours.\n\nWe highly recommend using **AvatarView-Coil** to load images. However, if you'd more prefer to use [Glide](https://github.com/bumptech/glide), you can use [AvatarView-Glide](/avatarview-glide/README.md) instead.\n\n## SNAPSHOT\n\n\u003cdetails\u003e\n \u003csummary\u003eSee how to import the snapshot\u003c/summary\u003e\n\n### Including the SNAPSHOT\nSnapshots of the current development version of AvatarView are available, which track [the latest versions](https://oss.sonatype.org/content/repositories/snapshots/io/getstream/avatarview/).\n\nTo import snapshot versions on your project, add the code snippet below on your gradle file.\n```Gradle\nrepositories {\n   maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }\n}\n```\n\nNext, add the below dependency to your **module**'s `build.gradle` file.\n```gradle\ndependencies {\n    implementation \"io.getstream:avatarview-coil:1.0.7-SNAPSHOT\"\n    implementation \"io.getstream:avatarview-glide:1.0.7-SNAPSHOT\"\n}\n```\n\n\u003c/details\u003e\n\n## Usage\n\nFirst, add the following XML namespace inside your XML layout file.\n\n```gradle\nxmlns:app=\"http://schemas.android.com/apk/res-auto\"\n```\n\n### **AvatarView** in XML layout\n\nYou can customize `AvatarView` in your XML layout by setting attributes.\n\n```gradle\n\u003cio.getstream.avatarview.AvatarView\n    android:layout_width=\"110dp\"\n    android:layout_height=\"110dp\"\n    app:avatarViewBorderColor=\"@color/yellow\"\n    app:avatarViewBorderWidth=\"3dp\"\n    app:avatarViewIndicatorBorderColor=\"@color/white\"\n    app:avatarViewIndicatorBorderSizeCriteria=\"10\"\n    app:avatarViewIndicatorColor=\"@color/md_green_100\"\n    app:avatarViewIndicatorEnabled=\"true\"\n    app:avatarViewIndicatorPosition=\"bottomRight\"\n    app:avatarViewIndicatorSizeCriteria=\"9\"\n    app:avatarViewInitialsTextStyle=\"bold\"\n    app:avatarViewShape=\"circle\" /\u003e\n```\n### Loading Single Image\n\nYou can load an image on your `AvatarView` by using the `loadImage` method as in the example below:\n\n```kotlin\navatarView.loadImage(data)\n```\n\nThe default supported **data** types are `String`, `Uri`, `HttpUrl` , `File`, `DrawableRes`, `Drawable`, and `Bitmap`. \u003cbr\u003e\nYou can also set a place holder and request listeners as in the example below:\n\n```kotlin\navatarView.loadImage(\n    data = data,\n    placeholder = drawable,\n    onStart = {\n        // started requesting an image\n    },\n    onComplete = {\n        // completed requesting an image\n    }\n)\n```\n\n\u003cimg src=\"/preview/preview2.png\" width=\"32%\" align=\"right\"/\u003e\n\n### Loading Images with Fractional Style\n\n`AvatarView` supports loading up to four images with the fractional style as in the example below:\n\n```kotlin\navatarView.loadImage(\n  data = listof(url1, url2, url3, url4)\n)\n```\n\nWe can set the maximum section size of the avatar when we load multiple images by using the `avatarViewMaxSectionSize` attribute  as in the exmample below:\n\n```xml\napp:avatarViewMaxSectionSize=\"4\"\n```\n\nThe default value is 4, and you can set the fractional formats to your taste.\n\n\u003cimg src=\"/preview/preview5.png\" width=\"32%\" align=\"right\"/\u003e\n\n### Loading Placeholder\n\nWe can set a placeholder to show a placeholder during loading an image as in the example below:\n\n```xml\napp:avatarViewPlaceholder=\"@drawable/stream\"\n```\nOr we can set a drawable manually on the `AvatarView`.\n\n```kotlin\navatarView.placeholder = drawable\n```\n\n\u003cimg src=\"/preview/preview4.png\" width=\"32%\" align=\"right\"/\u003e\n\n### Error Placeholder\n\nWe can set an error placeholder to show a placeholder when the request failed as in the example below:\n\n```xml\napp:avatarViewErrorPlaceholder=\"@drawable/stream\"\n```\nOr we can set a drawable manually on the `AvatarView`.\n\n```kotlin\navatarView.errorPlaceholder = drawable\n```\n\n### Custom ImageRequest\n\nYou can customize [ImageRequest](https://coil-kt.github.io/coil/image_requests/) and provide information to load an image as in the example below:\n\n```kotlin\navatarView.loadImage(\n  data = data\n) {\n    crossfade(true)\n    crossfade(300)\n    transformations(CircleCropTransformation())\n    lifecycle(this@MainActivity)\n}\n```\n\n\u003cimg src=\"/preview/preview9.png\" width=\"32%\" align=\"right\"/\u003e\n\n## Border\nYou can customize border relevant attributes as in the example below:\n\n```gradle\n\u003cio.getstream.avatarview.AvatarView\n    android:layout_width=\"110dp\"\n    android:layout_height=\"110dp\"\n    app:avatarViewBorderColor=\"@color/white\"\n    app:avatarViewBorderWidth=\"3dp\" /\u003e\n```\n\nAlso, you can make a gradient for the border with an `avatarViewIndicatorBorderColorArray` attribute. First, declare an array of color in you **colors.xml** file as in the example below:\n\n#### colors.xml\n```gradle\n\u003carray name=\"rainbow\"\u003e\n    \u003citem\u003e@color/red\u003c/item\u003e\n    \u003citem\u003e@color/orange\u003c/item\u003e\n    \u003citem\u003e@color/yellow\u003c/item\u003e\n    \u003citem\u003e@color/chartreuse\u003c/item\u003e\n    \u003citem\u003e@color/green\u003c/item\u003e\n\u003c/array\u003e\n```\n\nNext, apply the color array with the `avatarViewBorderColorArray` attribute instread of the `avatarViewBorderColor` as in the below example:\n\n```gradle\n\u003cio.getstream.avatarview.AvatarView\n    android:layout_width=\"110dp\"\n    android:layout_height=\"110dp\"\n    app:avatarViewBorderColorArray=\"@color/white\"\n    app:avatarViewBorderWidth=\"3dp\" /\u003e\n```\n\n\u003cimg src=\"/preview/preview8.png\" width=\"32%\" align=\"right\"/\u003e\n\n## Shape\nAvatarView supports two shapes; circle and rounded rect. You can customize the shapes as in the example below:\n\n### Circle\n\nYou can set the shape as a circle by setting the `avatarViewShape` attribute to `circle`.\n\n```gradle\n\u003cio.getstream.avatarview.AvatarView\n    android:layout_width=\"110dp\"\n    android:layout_height=\"110dp\"\n    app:avatarViewShape=\"circle\" /\u003e\n```\n\n### Rounded Rect\n\nYou can set the shape as a rounded rect by setting the `avatarViewShape` attribute to `rounded_rect`. Also, you can customize a radius of the border with an `avatarViewBorderRadius` attribute.\n\n```gradle\n\u003cio.getstream.avatarview.AvatarView\n    android:layout_width=\"110dp\"\n    android:layout_height=\"110dp\"\n    app:avatarViewShape=\"rounded_rect\"\n    app:avatarViewBorderRadius=\"21dp\"\n    /\u003e\n```\n\n\u003cimg src=\"/preview/preview10.png\" width=\"32%\" align=\"right\"/\u003e\n\n## Indicator\nAvatarView supports drawing an indicator, which can be used for presenting a user online status or badges. You can enable it by giving **true** for an `avatarViewIndicatorEnabled` attribute as in the example below:\n\n```gradle\n\u003cio.getstream.avatarview.AvatarView\n    android:layout_width=\"110dp\"\n    android:layout_height=\"110dp\"\n    app:avatarViewIndicatorEnabled=\"true\"\n    app:avatarViewIndicatorColor=\"@color/green\"\n    app:avatarViewIndicatorBorderColor=\"@color/white\"\n    app:avatarViewIndicatorSizeCriteria=\"9\"\n    app:avatarViewIndicatorBorderSizeCriteria=\"10\"\n    app:avatarViewIndicatorPosition=\"bottomRight\" /\u003e\n```\n\nAs you can see above, you can customize the color of the indicator and border of the indicator, size criteria, and position. Also, you can customize the whole indicator with your custom drawable resource:\n\n```gradle\n\u003cio.getstream.avatarview.AvatarView\n    android:layout_width=\"110dp\"\n    android:layout_height=\"110dp\"\n    app:avatarViewIndicatorDrawable=\"@drawable/stream\" /\u003e\n```\n\n\u003cimg src=\"/preview/preview3.png\" width=\"32%\" align=\"right\"/\u003e\n\n## Initials\n\n`AvatarView` supports drawing initials. You can draw and customize initials instead of loading an image over the `AvatarView` as in the example below:\n\n```gradle\n\u003cio.getstream.avatarview.AvatarView\n    android:layout_width=\"110dp\"\n    android:layout_height=\"110dp\"\n    app:avatarViewInitials=\"AB\"\n    app:avatarViewInitialsBackgroundColor=\"@color/skyBlue\"\n    app:avatarViewInitialsTextColor=\"@color/white\"\n    app:avatarViewInitialsTextSize=\"21sp\"\n    app:avatarViewInitialsTextSizeRatio=\"0.33\"\n    app:avatarViewInitialsTextStyle=\"bold\" /\u003e\n```\n\n## AvatarCoil\n\nThe `io.getstream.avatarview-coil` dependency supports customizing the internal Coil that is called `AvatarCoil`.\n\n### Custom ImageLoader\n\nYou can load images with your custom `ImageLoader` to load `AvatarView` by setting an `ImageLoaderFactory` on the `AvatarCoil`. Then all `AvatarView` will be loaded by the provided `ImageLoader` as in example the below:\n\n```kotlin\nAvatarCoil.setImageLoader(\n    AvatarImageLoaderFactory(context) {\n        crossfade(true)\n        crossfade(400)\n        okHttpClient {\n            OkHttpClient.Builder()\n                .cache(CoilUtils.createDefaultCache(context))\n                .build()\n        }\n    }\n)\n```\n\n### Custom AvatarBitmapFactory\n\n#### Loading custom Avatar bitmaps\n\nAvatar bitmaps are created by the internal bitmap factory called `AvatarBitmapFactory`. However, you can override the image loading methods and provide your own bitmap loader like the example below:\n\n\u003e **Note**: The `loadAvatarBitmapBlocking` method takes precedence over this one if both are implemented.\n\n```kotlin\nAvatarCoil.setAvatarBitmapFactory(\n    object : AvatarBitmapFactory(context) {\n        override suspend fun loadAvatarBitmap(data: Any?): Bitmap? {\n            return withContext(Dispatchers.IO) {\n                val imageResult = context.imageLoader.execute(\n                    ImageRequest.Builder(context)\n                       .headers(AvatarCoil.imageHeadersProvider.getImageRequestHeaders().toHeaders())\n                       .data(data)\n                       .build()\n                )\n                (imageResult.drawable as? BitmapDrawable)?.bitmap\n            }\n        }\n    }\n)\n```\n\nIf you don't use coroutines, you can override `loadAvatarBitmapBlocking` method instead.\n\n```kotlin\nAvatarCoil.setAvatarBitmapFactory(\n    object : AvatarBitmapFactory(context) {\n        override fun loadAvatarBitmapBlocking(): Bitmap? {\n            return // return your loaded Bitmap\n        }\n    }\n)\n```\n\n#### Loading custom Avatar placeholder bitmaps\n\nBasically, you can draw your placeholder drawable by setting the `placeholder` property on the `AvatarView`. However, you can provide your own bitmap loader by overriding the `loadAvatarPlaceholderBitmap` method like the example below:\n\n\u003e **Note**: The `loadAvatarPlaceholderBitmap` will be executed if the previous image request failed. And the `loadAvatarPlaceholderBitmapBlocking` method takes precedence over this one if both are implemented.\n\n```kotlin\nAvatarCoil.setAvatarBitmapFactory(\n    object : AvatarBitmapFactory(context) {\n        override fun loadAvatarPlaceholderBitmap(): Bitmap? {\n            return // return your loaded placeholder Bitmap\n        }\n    }\n)\n```\n\nIf you don't use coroutines, you can override `loadAvatarPlaceholderBitmapBlocking` method instead like the example below:\n\n```kotlin\nAvatarCoil.setAvatarBitmapFactory(\n    object : AvatarBitmapFactory(context) {\n        override fun loadAvatarPlaceholderBitmapBlocking(): Bitmap? {\n            return // return your loaded placeholder Bitmap\n        }\n    }\n)\n```\n\n### Custom ImageHeadersProvider\n\nIf you're using your own CDN, you can set the `imageHeadersProvider` on `AvatarCoil` to load image data with your own header as in the example below:\n\n```kotlin\nAvatarCoil.imageHeadersProvider = yourImageHeadersProvider\n```\n\n## AvatarView with Glide\nWe highly recommend using **AvatarView-Coil** to load images if possible. However, you can also use [Glide](https://github.com/bumptech/glide) instead.\n\n\u003e 👉 Check out [AvatarView-Glide](/avatarview-glide/README.md).\n\n \u003ca href=\"https://getstream.io/tutorials/android-chat/\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/24237865/138428440-b92e5fb7-89f8-41aa-96b1-71a5486c5849.png\" align=\"right\" width=\"12%\"/\u003e\u003c/a\u003e\n\n## Stream Integration\n\n[![Maven Central](https://img.shields.io/maven-central/v/io.getstream/avatarview-stream-integration.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22io.getstream%22%20AND%20a:%22avatarview-stream-integration%22)\n\nAvatarView supports integrating features with [Stream Chat SDK for Android](https://getstream.io/chat/sdk/android/). First, You can simply integrate with **Stream Chat SDK** by adding the dependency below:\n\n```gradle\ndependencies {\n    implementation \"io.getstream:avatarview-stream-integration:$avatarview_version\"\n}\n```\n\nNext, you should set the `StreamAvatarBitmapFactory` on the `AvatarCoil` as in the below:\n\n```kotlin\nAvatarCoil.setAvatarBitmapFactory(StreamAvatarBitmapFactory(context))\n```\n\nBasically, it will load the `image` extra data of the `User`. But if there's no valid image data, the initials from the `name` will be loaded.\n\n\u003cimg src=\"/preview/preview6.png\" width=\"32%\" align=\"right\"/\u003e\n\nThen you can set your `User` model to the `AvatarView` as in the example below:\n\n```kotlin\nval currentUser = ChatClient.instance().getCurrentUser()\navatarView.setUserData(currentUser)\n```\n\nAlso, you can set your `Channel` model to the `AvatarView` as in the example below:\n\n```kotlin\navatarView.setChannel(channel)\n```\n\nThe channel image will be loaded. But if there is no valid channel image, an image composed of members will be loaded.\n\n## AvatarView Attributes\n\nFor more details, you can check out the [Dokka-AvatarView](https://getstream.github.io/avatarview-android/avatarview/io.getstream.avatarview/-avatar-view/index.html).\n\n| Attributes                            | Type      | Description                                                  |\n| ------------------------------------- | --------- | ------------------------------------------------------------ |\n| avatarViewBorderColor                 | color     | AvatarView border color                                      |\n| avatarViewBorderColorArray            | array     | AvatarView border color array                                |\n| avatarViewBorderRadius                | dimension | AvatarView border radius                                     |\n| avatarViewBorderWidth                 | dimension | AvatarView Border width                                      |\n| avatarViewInitials                    | string    | AvatarView initials to be drawn instead of an image          |\n| avatarViewInitialsTextSize            | integer   | AvatarView initials text size                                |\n| avatarViewInitialsTextSizeRatio       | float     | AvatarView initials text size ratio following the width size |\n| avatarViewInitialsTextColor           | color     | AvatarView initials text color                               |\n| avatarViewInitialsBackgroundColor     | color     | AvatarView initials background color                         |\n| avatarViewInitialsTextStyle           | enum      | AvatarView initials text style                               |\n| avatarViewShape                       | enum      | AvatarView shapes                                            |\n| avatarViewIndicatorEnabled            | boolean   | Sets the visibility of the indicator                         |\n| avatarViewIndicatorPosition           | enum      | Sets the position of the indicator                           |\n| avatarViewIndicatorColor              | color     | Color of the indicator                                       |\n| avatarViewIndicatorBorderColor        | color     | Border color of the indicator                                |\n| avatarViewIndicatorBorderColorArray   | array     | Border color array of the indicator                          |\n| avatarViewIndicatorSizeCriteria       | float     | Size criteria of the indicator                               |\n| avatarViewIndicatorBorderSizeCriteria | float     | Border Size criteria of the indicator                        |\n| avatarViewSupportRtlEnabled           | boolean   | Supports RTL layout is enabled or not                        |\n| avatarViewMaxSectionSize              | enum      | The maximum section size of the avatar when loading multiple images |\n| avatarViewPlaceholder                 | drawable  | A placeholder that should be shown when loading an image     |\n| avatarViewErrorPlaceholder            | drawable  | An error placeholder that should be shown when request failed |\n\n \u003ca href=\"https://getstream.io/tutorials/android-chat/?utm_source=Github\u0026utm_campaign=Devrel_oss\u0026utm_medium=avatarview-android\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/24237865/146505581-a79e8f7d-6eda-4611-b41a-d60f0189e7d4.jpeg\" align=\"right\" /\u003e\u003c/a\u003e\n\n## Find this library useful? :heart:\n\nSupport it by joining __[stargazers](https://github.com/getStream/avatarview-android/stargazers)__ for this repository. :star: \u003cbr\u003e\nAlso, follow **[Stream](https://twitter.com/getstream_io)** on Twitter for our next creations!\n\n# License\n```xml\nCopyright 2022 Stream.IO, Inc. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGetStream%2Favatarview-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGetStream%2Favatarview-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGetStream%2Favatarview-android/lists"}