Skip to content

image change library for editing profile, image slider, product slider etc.

License

Notifications You must be signed in to change notification settings

abalta/swappy-image-view

Repository files navigation

swappy-image-view

An image change/sort view for editing profile, image slider, product slider etc.

Download

Step 1. Add the JitPack repository to your build file

allprojects {
    repositories {
	    ...
	    maven { url 'https://jitpack.io' }
	}
}

Step 2. Add the dependency

dependencies {
	        implementation 'com.github.abalta:swappy-image-view:1.0.0'
	}

Usage

Add swappy image view to your layout xml

    <com.abdullahbalta.swappy.SwappyImageView
            android:id="@+id/swappy_view"
            android:layout_width="match_parent"
            android:layout_height="240dp"/>

Add image from gallery/camera

Implement OnSwappyListener to your activity/fragment

    override fun onAddingImage(imageView: ImageView) {
        //Trigger gallery/camera intent code
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
	    ...
            swappy.addImage('drawable' or 'bitmap')
        }
    }

Add image from url

Implement OnSwappyListener to your activity/fragment, to handle placeholder you need to call setImageAddedFailed() or setImageAddedSuccess()

    override fun onAddingImage(imageView: ImageView) {
    	//Use any image loading library
        Glide.with(this).load(edtUrl.text.toString()).listener(object: RequestListener<Drawable> {
            override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Drawable>?, isFirstResource: Boolean): Boolean {
                swappy.setImageAddedFailed()
                return false
            }

            override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
                swappy.setImageAddedSuccess()
                return false
            }

        }).into(imageView)
    }

Features

       /**
         * app:add_icon -> customize add icon (vector supported)
         * app:remove_icon -> customize remove icon (vector supported)
         * app:placeholder -> customize empty imageview background (solid color supported)
         * app:item_padding -> padding imageviews
         * app:main_image -> pre-defined main image (vector supported)
         * app:first_image -> pre-defined first image (vector supported)
         * app:second_image -> pre-defined second image (vector supported)
         * app:third_image -> pre-defined third image (vector supported)
         */

Influence

Tinder

This project influenced by Tinder's good looking profile image edit/sort view

Thanks to

Sample app uses following libraries demonstrates demo app, you may use different way to show swappy image view

License

Copyright 2018 Abdullah Balta

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.

About

image change library for editing profile, image slider, product slider etc.

Resources

License

Stars

Watchers

Forks

Packages

No packages published