All Projects → IvBaranov → Materialfavoritebutton

IvBaranov / Materialfavoritebutton

Licence: apache-2.0
Animated favorite/star/like button

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Materialfavoritebutton

Materiallettericon
Material first letter icon like lollipop contacts icon. Letter(s) on a shape drawn on canvas.
Stars: ✭ 255 (-56.48%)
Mutual labels:  material-design, material, material-ui, android-ui
Sequent
A simple continuous animation library for Android UI.
Stars: ✭ 263 (-55.12%)
Mutual labels:  material-design, material, material-ui, android-ui
Slidetoact
A simple 'Slide to Unlock' Material widget for Android, written in Kotlin 📱🎨🦄
Stars: ✭ 783 (+33.62%)
Mutual labels:  material-design, material, material-ui, android-ui
Ibackdrop
A library to simply use Backdrop in your project (make it easy). Read more ->
Stars: ✭ 137 (-76.62%)
Mutual labels:  material-design, material, material-ui, android-ui
Material Admin
Free Material Admin Template
Stars: ✭ 219 (-62.63%)
Mutual labels:  material-design, material, material-ui
Bottomsheet
BottomSheet dialog library for Android
Stars: ✭ 219 (-62.63%)
Mutual labels:  material-design, material-ui, android-ui
Motion Shapeofview
Explain how to use MotionLayout with ShapeOfView
Stars: ✭ 236 (-59.73%)
Mutual labels:  material-design, material, material-ui
Jekyll Material Theme
A Jekyll Theme based on Material Design using Materialize.
Stars: ✭ 165 (-71.84%)
Mutual labels:  material-design, material, material-ui
Alyle Ui
Minimal Design, a set of components for Angular 9+
Stars: ✭ 234 (-60.07%)
Mutual labels:  material-design, material, material-ui
Android Iconics
Android-Iconics - Use any icon font, or vector (.svg) as drawable in your application.
Stars: ✭ 4,916 (+738.91%)
Mutual labels:  material-design, material, material-ui
Android Material Design For Pre Lollipop
Various UI implementations, animations & effects based on Material Design compatible with pre Lollipop devices as well. (Work in progess)
Stars: ✭ 585 (-0.17%)
Mutual labels:  material-design, material-ui, android-ui
Materialpreferences
A highly flexible set of lovely looking views that provides functionality of preferences.
Stars: ✭ 495 (-15.53%)
Mutual labels:  material-design, material-ui, android-ui
Hubuntu Ui
Material Admin Dashboard Starter UI ( Ubuntu style ) - https://720kb.github.io/hubuntu-ui/
Stars: ✭ 207 (-64.68%)
Mutual labels:  material-design, material, material-ui
Customfloatingactionbutton
This view is for replacement of standard Floating Action Button from Google Support Library. It is easy to use, customizable and you can also add text to button
Stars: ✭ 222 (-62.12%)
Mutual labels:  material-design, android-ui, button
Material Singleinputform
A single EditText instead of a classical form. Library that implements flavienlaurent's singleinputform
Stars: ✭ 202 (-65.53%)
Mutual labels:  material-design, material, material-ui
Aestheticdialogs
📱 An Android Library for 💫fluid, 😍beautiful, 🎨custom Dialogs.
Stars: ✭ 352 (-39.93%)
Mutual labels:  material-design, material-ui, android-ui
Alerter
An Android Alerting Library
Stars: ✭ 5,213 (+789.59%)
Mutual labels:  material-design, material-ui, android-ui
Material Progressview
🔥A beautiful, gradual and simple used progress view for android.
Stars: ✭ 406 (-30.72%)
Mutual labels:  material-design, material, android-ui
Materialdrawer
The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.
Stars: ✭ 11,498 (+1862.12%)
Mutual labels:  material-design, material-ui, android-ui
Carbon
Material Design implementation for Android 4.0+. Shadows, ripples, vectors, fonts, animations, widgets, rounded corners and more.
Stars: ✭ 2,942 (+402.05%)
Mutual labels:  material-design, material-ui, android-ui

Material Favorite Button

Material spinning favorite/star/like button.

Android Arsenal Build Status

Demo Image

Download

compile 'com.github.ivbaranov:materialfavoritebutton:0.1.5'

Usage

Declare in XML (see xml attributes below for customization):

<com.github.ivbaranov.mfb.MaterialFavoriteButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

Or static initializer (see xml attributes below for customization):

MaterialFavoriteButton favorite = new MaterialFavoriteButton.Builder(this)
        .create();

Configure using xml attributes or setters in code:

app:mfb_state="false"                            // default button state
app:mfb_animate_favorite="true"                  // to animate favoriting
app:mfb_animate_unfavorite="false"               // to animate unfavoriting
app:mfb_padding="12"                             // image padding
app:mfb_favorite_image="@drawable/ic_fav"        // custom favorite resource
app:mfb_not_favorite_image="@drawable/ic_not_fav"// custom not favorite resource
app:mfb_rotation_duration="400"                  // rotation duration
app:mfb_rotation_angle="360"                     // rotation angle
app:mfb_bounce_duration="300"                    // bounce duration
app:mfb_color="black"                            // black or white default resources (enum)
app:mfb_type="star"                              // star or heart shapes (enum)
app:mfb_size="48"                                // button size

Make sure:

  • you are using either (mfb_favorite_image and mfb_not_favorite_image) or (mfb_color and mfb_type).
  • if you change mfb_size attribute you should also provide your own combination of mfb_favorite_image and mfb_favorite_image resources and mfb_padding attribute that will fit your new dimensions, otherwise you can get blurred icon

Set an OnFavoriteChangeListener to MaterialFavoriteButton:

favorite.setOnFavoriteChangeListener(
        new MaterialFavoriteButton.OnFavoriteChangeListener() {
          @Override
          public void onFavoriteChanged(MaterialFavoriteButton buttonView, boolean favorite) {
          	//
          }
        });

Set an OnFavoriteAnimationEndListener to MaterialFavoriteButton:

favorite.setOnFavoriteAnimationEndListener(
        new MaterialFavoriteButton.OnFavoriteAnimationEndListener() {
          @Override
          public void onAnimationEnd(MaterialFavoriteButton buttonView, boolean favorite) {
            //
          }
        });
Usage in RecyclerView

To avoid triggering animation while re-rendering item view make sure you set favorite button state in onBindViewHolder without animation:

favoriteButton.setFavorite(isFavorite(data.get(position)));

Developed By

Ivan Baranov

License

Copyright 2015 Ivan Baranov

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].