Create circular ImageView in Android in the simplest way possible

Overview

CircularImageView

sample

Platform API Download
Twitter Codacy Badge

This is an Android project allowing to realize a circular ImageView in the simplest way possible.

Android app on Google Play

USAGE

To make a circular ImageView add CircularImageView in your layout XML and add CircularImageView library in your project or you can also grab it via Gradle:

implementation 'com.mikhaellopez:circularimageview:4.2.0'

XML

<com.mikhaellopez.circularimageview.CircularImageView
    android:layout_width="250dp"
    android:layout_height="250dp"
    android:src="@drawable/image"
    app:civ_border_color="#3f51b5"
    app:civ_border_width="4dp"
    app:civ_shadow="true"
    app:civ_shadow_radius="10"
    app:civ_shadow_color="#3f51b5"/>

You must use the following properties in your XML to change your CircularImageView.

Properties Type Default
app:civ_circle_color color WHITE
app:civ_circle_color_start color civ_circle_color
app:civ_circle_color_end color civ_circle_color
app:civ_color_direction left_to_right, right_to_left, top_to_bottom or bottom_to_top left_to_right
app:civ_border boolean true
app:civ_border_width dimension 4dp
app:civ_border_color color WHITE
app:civ_border_color_start color civ_border_color
app:civ_border_color_end color civ_border_color
app:civ_border_color_direction left_to_right, right_to_left, top_to_bottom or bottom_to_top left_to_right
app:civ_shadow boolean false
app:civ_shadow_color color BLACK
app:civ_shadow_radius dimension 8dp
app:civ_shadow_gravity center, top, bottom, start or end bottom

ℹ️ You can also use android:elevation instead of app:civ_shadow to have default Material Design elevation.

KOTLIN

val circularImageView = findViewById<CircularImageView>(R.id.circularImageView)
circularImageView.apply {
    // Set Color
    circleColor = Color.WHITE
    // or with gradient
    circleColorStart = Color.BLACK
    circleColorEnd = Color.RED
    circleColorDirection = CircularImageView.GradientDirection.TOP_TO_BOTTOM

    // Set Border
    borderWidth = 10f
    borderColor = Color.BLACK
    // or with gradient
    borderColorStart = Color.BLACK
    borderColorEnd = Color.RED
    borderColorDirection = CircularImageView.GradientDirection.TOP_TO_BOTTOM
    
    // Add Shadow with default param
    shadowEnable = true
    // or with custom param
    shadowRadius = 7f
    shadowColor = Color.RED
    shadowGravity = CircularImageView.ShadowGravity.CENTER
}

JAVA

CircularImageView circularImageView = findViewById(R.id.circularImageView);
// Set Color
circularImageView.setCircleColor(Color.WHITE);
// or with gradient
circularImageView.setCircleColorStart(Color.BLACK);
circularImageView.setCircleColorEnd(Color.RED);
circularImageView.setCircleColorDirection(CircularImageView.GradientDirection.TOP_TO_BOTTOM);

// Set Border
circularImageView.setBorderWidth(10f);
circularImageView.setBorderColor(Color.BLACK);
// or with gradient
circularImageView.setBorderColorStart(Color.BLACK);
circularImageView.setBorderColorEnd(Color.RED);
circularImageView.setBorderColorDirection(CircularImageView.GradientDirection.TOP_TO_BOTTOM);

// Add Shadow with default param
circularImageView.setShadowEnable(true);
// or with custom param
circularImageView.setShadowRadius(7f);
circularImageView.setShadowColor(Color.RED);
circularImageView.setShadowGravity(CircularImageView.ShadowGravity.CENTER);

LIMITATIONS

  • By default the ScaleType is FIT_CENTER. You can also used CENTER_INSIDE AND CENTER_CROP.
  • Enabling adjustViewBounds is not supported as this requires an unsupported ScaleType.

SUPPORT ❤️

Find this library useful? Support it by joining stargazers for this repository ⭐️
And follow me for my next creations 👍

LICENCE

CircularImageView by Lopez Mikhael is licensed under a Apache License 2.0.

Comments
  • Bug: cannot avoid center-crop

    Bug: cannot avoid center-crop

    suppose I have a small image to show inside the circularImageView, how do I avoid it being center-cropped? I've set this:

                <com.mikhaellopez.circularimageview.CircularImageView
                    android:id="@+id/movingIconImageView"
                    android:layout_width="80dp"
                    android:layout_height="80dp"
                    android:layout_gravity="center_horizontal"
                    android:src="@drawable/test"
                    app:border="true" 
                    app:border_color="#fff"
                    app:border_width="0px"
                    app:shadow="true"
                    app:shadow_color="#000"
                    app:shadow_radius="8"/>
    

    and the image is of size 58x60 dp (it's in the mdpi folder and has the same pixels size as the dp).

    Yet this is what I see (ignore what's behind ) :

    untitled20151216104018

    Same thing occurs when I have a 100x100 dp of the view. It always does center-crop...

    I've tried changing the scaleType, but it doesn't do anything. I've even tried forcing padding, but it didn't help.

    opened by AndroidDeveloperLB 18
  • Image unwanted black background

    Image unwanted black background

    Hi!

    I have a black background when using your walter image. But when using a transparent image (ic_launcher), it works perfectly... I can't find the solution. Can you help me?

    Here is the screenshot: device-2015-10-29-125401 And here is the xml code:

                <com.mikhaellopez.circularimageview.CircularImageView
                    android:layout_width="96dp"
                    android:layout_height="96dp"
                    android:scaleType="centerCrop"
                    android:src="@drawable/walter"
                    app:border="true"
                    app:border_color="@android:color/white"
                    app:border_width="3dp"
                    app:shadow="true"
                    app:shadow_color="#000000"
                    app:shadow_radius="6"/>
    
                <com.mikhaellopez.circularimageview.CircularImageView
                    android:layout_width="96dp"
                    android:layout_height="96dp"
                    android:scaleType="centerCrop"
                    android:src="@drawable/ic_launcher"
                    app:border="true"
                    app:border_color="@android:color/white"
                    app:border_width="3dp"
                    app:shadow="true"
                    app:shadow_color="#000000"
                    app:shadow_radius="6"/>
    
    bug 
    opened by DenisMondon 12
  • Black background

    Black background

    I'am using picasso to load image into circular view, if I set the placeholder or the default image then it shows the regular background but it show black background if I use another image

    opened by thatsVishal 8
  • not working (makes app to crach - test on genymotion android 9 and 6)

    not working (makes app to crach - test on genymotion android 9 and 6)

    i've created a brand new app and this is my xml: adding civ library causes app to crash

    tesed on genymotion android 9 and android 6 <com.mikhaellopez.circularimageview.CircularImageView android:layout_width="250dp" android:layout_height="250dp" android:src="@drawable/flash" app:civ_border_color="#3f51b5" app:civ_border_width="4dp" app:civ_shadow="true" app:civ_shadow_radius="10" app:civ_shadow_color="#3f51b5"/>

    opened by pcloudzaman 7
  • Don't create a new shader in every call to onDraw().

    Don't create a new shader in every call to onDraw().

    Creating a new shader and bitmap in every call to onDraw (up to 60times / second) is very bad for performance.

    Try creating the shader in onSizeChanged() to make sure your bitmap has the right size.

    opened by simonedstromsi 7
  • am getting render error

    am getting render error

    am getting the following error

    Failed to find style 'circularImageViewStyle' in current theme

    when i run the app i see the circularimageview, but on design i get the above error

    bug 
    opened by firaskudsy 6
  • The image does't load correctly the first time you run the app

    The image does't load correctly the first time you run the app

    I tried with several phones and it continues to happen, but when I go to another layout and then come back it goes back to normal. This issue started after you include the gradients. Screen Shot 2019-12-02 at 1 02 58 PM

    opened by johnjeremih 5
  • Caused by java.lang.OutOfMemoryErrorFailed to allocate a 7091580 byte allocation with 6682456 free bytes and 6MB until OOM Raw Text

    Caused by java.lang.OutOfMemoryErrorFailed to allocate a 7091580 byte allocation with 6682456 free bytes and 6MB until OOM Raw Text

    Caused by java.lang.OutOfMemoryErrorFailed to allocate a 7091580 byte allocation with 6682456 free bytes and 6MB until OOM Raw Text

      | dalvik.system.VMRuntime.newNonMovableArray (VMRuntime.java)   | android.graphics.BitmapFactory.nativeDecodeAsset (BitmapFactory.java)   | android.graphics.BitmapFactory.decodeStream + 620 (BitmapFactory.java:620)   | android.graphics.BitmapFactory.decodeResourceStream + 455 (BitmapFactory.java:455)   | android.graphics.drawable.Drawable.createFromResourceStream + 1152 (Drawable.java:1152)   | android.content.res.ResourcesImpl.loadDrawableForCookie + 720 (ResourcesImpl.java:720)   | android.content.res.ResourcesImpl.loadDrawable + 571 (ResourcesImpl.java:571)   | android.content.res.Resources.loadDrawable + 858 (Resources.java:858)   | android.content.res.TypedArray.getDrawable + 928 (TypedArray.java:928)   | android.widget.ImageView. + 162 (ImageView.java:162)   | android.widget.ImageView. + 150 (ImageView.java:150)   | android.support.v7.widget.AppCompatImageView. + 72 (AppCompatImageView.java:72)   | com.mikhaellopez.circularimageview.CircularImageView. + 56 (CircularImageView.java:56)   | com.mikhaellopez.circularimageview.CircularImageView. + 52 (CircularImageView.java:52)   | java.lang.reflect.Constructor.newInstance0 (Constructor.java)   | java.lang.reflect.Constructor.newInstance + 430 (Constructor.java:430)   | android.view.LayoutInflater.createView + 645 (LayoutInflater.java:645)   | android.view.LayoutInflater.createViewFromTag + 787 (LayoutInflater.java:787)   | android.view.LayoutInflater.createViewFromTag + 727 (LayoutInflater.java:727)   | android.view.LayoutInflater.rInflate + 858 (LayoutInflater.java:858)   | android.view.LayoutInflater.rInflateChildren + 821 (LayoutInflater.java:821)   | android.view.LayoutInflater.inflate + 518 (LayoutInflater.java:518)   | android.view.LayoutInflater.inflate + 426 (LayoutInflater.java:426)   | com.tivo.blackph.view.nav.NavFragment.onCreateView + 147 (NavFragment.java:147)   | android.support.v4.app.Fragment.performCreateView + 2439 (Fragment.java:2439)   | android.support.v4.app.FragmentManagerImpl.moveToState + 1460 (FragmentManager.java:1460)   | android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState + 1784 (FragmentManager.java:1784)   | android.support.v4.app.FragmentManagerImpl.moveToState + 1852 (FragmentManager.java:1852)   | android.support.v4.app.BackStackRecord.executeOps + 802 (BackStackRecord.java:802)   | android.support.v4.app.FragmentManagerImpl.executeOps + 2625 (FragmentManager.java:2625)   | android.support.v4.app.FragmentManagerImpl.executeOpsTogether + 2411 (FragmentManager.java:2411)   | android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute + 2366 (FragmentManager.java:2366)   | android.support.v4.app.FragmentManagerImpl.execPendingActions + 2273 (FragmentManager.java:2273)   | android.support.v4.app.FragmentManagerImpl$1.run + 733 (FragmentManager.java:733)   | android.os.Handler.handleCallback + 751 (Handler.java:751)   | android.os.Handler.dispatchMessage + 95 (Handler.java:95)   | android.os.Looper.loop + 154 (Looper.java:154)   | android.app.ActivityThread.main + 6088 (ActivityThread.java:6088)   | java.lang.reflect.Method.invoke (Method.java)   | com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 886 (ZygoteInit.java:886)   | com.android.internal.os.ZygoteInit.main + 776 (ZygoteInit.java:776)

    I got this when I added this into my app:

      | com.mikhaellopez.circularimageview.CircularImageView. + 56 (CircularImageView.java:56)   | com.mikhaellopez.circularimageview.CircularImageView. + 52 (CircularImageView.java:52)

    Can you please help?

    duplicate 
    opened by AnilTiVo 5
  • Possible memory lake

    Possible memory lake

    i get this error

    java.lang.OutOfMemoryError: Failed to allocate a 9000012 byte 
    allocation with 3137632 free bytes and 2MB until OOM
    
    at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
    at android.graphics.Bitmap.nativeCreate(Native Method)
    at android.graphics.Bitmap.createBitmap(Bitmap.java:831)
    at android.graphics.Bitmap.createBitmap(Bitmap.java:808)
    at android.graphics.Bitmap.createBitmap(Bitmap.java:728)
    at android.graphics.Bitmap.createBitmap(Bitmap.java:653)
    at com.mikhaellopez.circularimageview.CircularImageView.cropBitmap
    (CircularImageView.java:206)
    
    opened by pishguy 5
  • Crash , when Inflate in the view.

    Crash , when Inflate in the view.

    Adapter or main fragment , behavior is same... as

    android.view.InflateException: Binary XML file line #79: Error inflating class <unknown>
                                                                           at android.view.LayoutInflater.createView(LayoutInflater.java:640)
                                                                           at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
                                                                           at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
                                                                           at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
                                                                           at com.algorepublic.zoho.adapters.AdapterUser.getView(AdapterUser.java:57)
                                                                           at android.widget.AbsListView.obtainView(AbsListView.java:2820)
    
    opened by Awais-Ali 5
  • Possible setBorder(true|false) ?

    Possible setBorder(true|false) ?

    Hi, I would like to remove or add at runtime the border. For now, I'm using setBorderWidth(0) to remove it...

    Is it possible to add the .setBorder(boolean) method?

    Thanks Denis

    duplicate 
    opened by DenisMondon 5
  • Fix compatibility with Glide

    Fix compatibility with Glide

    Guidelines

    Sometimes picture cannot display when using Glide, this issue is famous with Glide compatibility, also see https://github.com/lopspower/CircularImageView/issues/133 and https://github.com/lopspower/CircularImageView/issues/135

    Types of changes

    What types of changes does your code introduce?

    • [x] Bugfix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    opened by y4n9b0 0
  • CircularProgressDrawable not working

    CircularProgressDrawable not working

    Hi, your library help me so much, but with your library, i can't implement this code

    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
    
      val circularProgressDrawable = CircularProgressDrawable(this)
      circularProgressDrawable.strokeWidth = 5f
      circularProgressDrawable.centerRadius = 30f
      circularProgressDrawable.start()
    
      GlideApp.with(applicationContext)
          .load("https://raw.githubusercontent.com/bumptech/glide/master/static/glide_logo.png")
          .placeholder(circularProgressDrawable)
          .into(a_main_image)
    

    But if i change the view to regular ImageView or AppCompatImageView, those code is work Thank you

    opened by zihadrizkyef 0
  • About use glide library but the image is not show

    About use glide library but the image is not show

    Hi, I encountered loading problem with glide library. The link I want to load begins with 'https' but there is no action for loading. I try to use it // .transition(DrawableTransitionOptions.withCrossFade()) , but is not work.

    opened by Molzx 0
  • Glide not loading pictures!

    Glide not loading pictures!

    Hi, I encountered loading problem with glide library. The link I want to load begins with 'https' but there is no action for loading. If I use regular imageview everything is fine and loading correctly.

    opened by onuryurtturk 1
  • translucent white overlay

    translucent white overlay

    image view has translucent white overlay on api 21 and 23 app:civ_shadow="true" creates a white overlay not sure why maybe using app:elevation instead of android:elevation ?

    using android elevation fixes this

    opened by martipello 0
Releases(4.3.1)
  • 4.3.1(Aug 23, 2022)

    What's Changed

    • Update script to publish to Maven Central with Gradle 7.x.x
    • Update version Kotlin 1.7.10
    • Update gradle version 7.2.2
    • Update version AndroidX AppCompat 1.5.0
    • Add issue template for Bug & Report
    • Add pull request template

    Full Changelog: https://github.com/lopspower/CircularImageView/compare/4.3.0...4.3.1

    USAGE

    implementation 'com.mikhaellopez:circularimageview:4.3.1'
    
    Android app on Google Play Source code(tar.gz)
    Source code(zip)
  • 4.2.0(Feb 6, 2020)

    RELEASE NOTES

    • Update Kotlin to 1.3.61
    • VectorDrawable is now draw with best quality
    • shadow_radius is now in DP

    USAGE

    implementation 'com.mikhaellopez:circularimageview:4.2.0'
    
    Source code(tar.gz)
    Source code(zip)
  • 4.1.0(Nov 7, 2019)

    RELEASE NOTES

    • Update Kotlin to 1.3.50
    • Improve onMeasure method to center the circle when the main view is not square
    • Add gradient border properties: civ_border_color_start, civ_border_color_end and civ_border_color_direction
    • Add gradient circle color properties: civ_circle_color_start, civ_circle_color_end and civ_color_direction
    • Add new scaleType: FIT_CENTER, CENTER_CROP and CENTER_INSIDE

    USAGE

    implementation 'com.mikhaellopez:circularimageview:4.1.0'
    
    Source code(tar.gz)
    Source code(zip)
  • 4.0.1(Jun 27, 2019)

    RELEASE NOTES

    • Update Kotlin to 1.3.40
    • Include Kotlin Stdlib in the dependencies list in pom.xml to use this library on Android Java project

    USAGE

    implementation 'com.mikhaellopez:circularimageview:4.0.1'
    
    Source code(tar.gz)
    Source code(zip)
  • 4.0.0(Jun 12, 2019)

    RELEASE NOTES

    • CircularImageView is now rewrite in Kotlin
    • default android:elevation is now support instead of app:civ_shadow
    • Migration to AndroidX for AppCompatImageView
    • Replace app:civ_background_color by app:civ_color to manage color of circle for transparent image
    • Replace addShadow by setShadowEnable method
    • Fix shadow effect on API 28

    USAGE

    implementation 'com.mikhaellopez:circularimageview:4.0.0'
    
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0(Jul 4, 2018)

    RELEASE NOTES

    • Update gradle version
    • Update compile, target & min sdk Version
    • Remove allowBackup & supportsRtl on library
    • Improve sample
    • Update script to publish on jcenter
    • New properties to set background color for png -> civ_background_color or setBackgroundColor
    • CircularImageView extends now AppCompatImageView, you can used app:srcCompat
    • Update Licence file Apache Version 2.0
    • You can now set shadowGravity with setShadowGravity method or with civ_shadow_gravity (center, top, bottom, start or end)
    • Add ColorFilter support
    • Improve drawableToBitmap method
    • Replace cropBitmap method by center image in shader with this default size to fix memory leak from this method

    USAGE

    implementation 'com.mikhaellopez:circularimageview:3.1.0'
    
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(Feb 3, 2016)

    I update this library with:

    • Add Prefix civ in front of properties (to correct "Attribute has already been defined")
    • Fix Preview in Edit mode
    Source code(tar.gz)
    Source code(zip)
  • 2.1.1(Dec 10, 2015)

  • 2.0.2(Nov 24, 2015)

    I update this library for you with two new params:

    • app:shadow_color (color) -> default BLACK
    • app:shadow_radius (float) -> default 8.0f

    Or programmatically:

    CircularImageView circularImageView = (CircularImageView)findViewById(R.id.yourCircularImageView);
    // Add Shadow with default param
    circularImageView.addShadow();
    // or with custom param
    circularImageView.setShadowRadius(15);
    circularImageView.setShadowColor(Color.RED);
    

    You can used this update with gradle:

    compile 'com.mikhaellopez:circularimageview:2.0.2'
    
    Source code(tar.gz)
    Source code(zip)
  • 2.0.1(Oct 14, 2015)

Owner
Lopez Mikhael
Team Leader Android
Lopez Mikhael
Create parallax and any other transformation effects on scrolling android ImageView

Android Parallax Image View Creates effect such as vertical parallax, horizontal parallax etc. on android ImageView when it's being vertically or hori

Aris 164 Dec 7, 2022
Custom view for circular images in Android while maintaining the best draw performance

CircularImageView Custom view for circular images in Android while maintaining the best draw performance Usage To make a circular ImageView, add this

Pkmmte Xeleon 1.2k Dec 28, 2022
Custom ImageView for android with polygon shape (Android)

PolygonImageView Create a custom ImageView with polygonal forms. Usage To use PolygonImageView, add the module into your project and start to build xm

Albert Grobas 531 Dec 25, 2022
Implementation of ImageView for Android that supports zooming, by various touch gestures.

PhotoView PhotoView aims to help produce an easily usable implementation of a zooming Android ImageView. [ Dependency Add this in your root build.grad

Baseflow 18.4k Dec 30, 2022
Adds touch functionality to Android ImageView.

TouchImageView for Android Capabilities TouchImageView extends ImageView and supports all of ImageView’s functionality. In addition, TouchImageView ad

Michael Ortiz 2.4k Mar 28, 2021
Custom shaped android imageview components

Shape Image View Provides a set of custom shaped android imageview components, and a framework to define more shapes. Implements both shader and bitma

Siyamed SINIR 2.6k Mar 29, 2021
Android ImageView widget with zoom and pan capabilities

ImageViewTouch for Android ImageViewTouch is an android ImageView widget with zoom and pan capabilities. This is an implementation of the ImageView wi

Alessandro Crugnola 1.9k Jan 4, 2023
Android ImageView replacement which allows image loading from URLs or contact address book, with caching

Smart Image View for Android SmartImageView is a drop-in replacement for Android’s standard ImageView which additionally allows images to be loaded fr

James Smith 1.3k Dec 24, 2022
Implements pinch-zoom, rotate, pan as an ImageView for Android 2.1+

GestureImageView This is a simple Android View class which provides basic pinch and zoom capability for images. Can be used as a replacement for a sta

Jason 1.1k Nov 10, 2022
Android ImageView that handles animated GIF images

GifImageView Android ImageView that handles Animated GIF images Usage In your build.gradle file: dependencies { compile 'com.felipecsl:gifimageview:

Felipe Lima 1.1k Mar 9, 2021
Android ImageView that supports different radii on each corner.

SelectableRoundedImageView Note that this project is no longer maintained. Android ImageView that supports different radii on each corner. It also sup

Joonho Kim 1.1k Mar 17, 2021
ImageView with a tag on android

SimpleTagImageView ImageView with a tag in android. So it's a ImageView. Demo ####Warning:When you set the round radius,the simpletagimageview scale t

null 944 Nov 10, 2022
Custom ImageView for moving image around the screen (Android)

MovingImageView Create a custom ImageView for moving image around the screen. Usage To use MovingImageView, add the module into your project and start

Albert Grobas 819 Nov 18, 2022
Flickable ImageView for Android. It's like a view of twitter's detail image.

FlickableView Flickable ImageView for Android. It's like a view of twitter's detail image. It's possible that other views animate with FlickableView.

goka 153 Nov 14, 2022
Implementation of ImageView for Android that supports zooming, by various touch gestures.

PhotoView PhotoView aims to help produce an easily usable implementation of a zooming Android ImageView. [ Dependency Add this in your root build.grad

Baseflow 18.4k Dec 27, 2022
A library for Android provides blurred drop shadows to ImageView similar to iOS image backdrop shadows

A library for Android provides blurred drop shadows to ImageView similar to iOS image backdrop shadows.Provides fast canvas draw as no renderscript needed .The similar shadow blurred effects can also be seen in iOS Music App.

Vivek Verma 163 Dec 31, 2022
ImageView and FrameLayout with gestures control and position animation

GestureViews ImageView and FrameLayout with gestures control and position animation. Main goal of this library is to make images viewing process as sm

Alex Vasilkov 2.3k Dec 30, 2022
Crop and Rounded Corners added to an ImageView.

SuperImageView Extra features for your ImageView provided in a modularized way Documentation for v2 coming this week. CropImageView An ImageView that

César Díez Sánchez 657 Jan 5, 2023