[] Android library for using the Honeycomb animation API on all versions of the platform back to 1.0!

Overview

DEPRECATED

NineOldAndroids is deprecated. No new development will be taking place. Existing versions will (of course) continue to function. New applications should use minSdkVersion="14" or higher which has access to the platform animation APIs.

Thanks for all your support!

Nine Old Androids

Android library for using the Honeycomb (Android 3.0) animation API on all versions of the platform back to 1.0!

Note: LayoutTransition is present and it is not be possible to implement prior to Android 3.0.

Usage

The API is exactly the same as the Honeycomb API, just change your imports to use com.nineoldandroids.XXX.

Take a look at a few demos taken from the platform ApiDemos in the sample/ folder. You can also try it out on the Play Store.

More information is available on nineoldandroids.com.

Including In Your Project

This library is presented as a .jar file which you can include in the libs/ folder of your application. You can download the latest version from the GitHub downloads page.

If you are a Maven user you can easily include the library by specifying it as a dependency:

<dependency>
  <groupId>com.nineoldandroids</groupId>
  <artifactId>library</artifactId>
  <version>2.4.0</version>
</dependency>

Developed By

License

Copyright 2012 Jake Wharton

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.
Comments
  • AndroidSlidingUpPanel Not work in target10

    AndroidSlidingUpPanel Not work in target10

    04-11 10:55:20.910: E/AndroidRuntime(3225): FATAL EXCEPTION: main 04-11 10:55:20.910: E/AndroidRuntime(3225): java.lang.NoClassDefFoundError: com.nineoldandroids.view.animation.AnimatorProxy 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.sothree.slidinguppanel.SlidingUpPanelLayout.onPanelDragged(SlidingUpPanelLayout.java:974) 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.sothree.slidinguppanel.SlidingUpPanelLayout.access$8(SlidingUpPanelLayout.java:964) 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.sothree.slidinguppanel.SlidingUpPanelLayout$DragHelperCallback.onViewPositionChanged(SlidingUpPanelLayout.java:1204) 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.sothree.slidinguppanel.ViewDragHelper.dragTo(ViewDragHelper.java:1393) 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.sothree.slidinguppanel.ViewDragHelper.processTouchEvent(ViewDragHelper.java:1127) 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.sothree.slidinguppanel.SlidingUpPanelLayout.onTouchEvent(SlidingUpPanelLayout.java:875) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.view.View.dispatchTouchEvent(View.java:3938) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:903) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1733) 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1151) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.app.Activity.dispatchTouchEvent(Activity.java:2096) 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1717) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2215) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.view.ViewRoot.handleMessage(ViewRoot.java:1886) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.os.Handler.dispatchMessage(Handler.java:99) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.os.Looper.loop(Looper.java:123) 04-11 10:55:20.910: E/AndroidRuntime(3225): at android.app.ActivityThread.main(ActivityThread.java:3687) 04-11 10:55:20.910: E/AndroidRuntime(3225): at java.lang.reflect.Method.invokeNative(Native Method) 04-11 10:55:20.910: E/AndroidRuntime(3225): at java.lang.reflect.Method.invoke(Method.java:507) 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 04-11 10:55:20.910: E/AndroidRuntime(3225): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 04-11 10:55:20.910: E/AndroidRuntime(3225): at dalvik.system.NativeStart.main(Native Method) 04-11 10:56:35.778: E/AndroidRuntime(3393): FATAL EXCEPTION: main 04-11 10:56:35.778: E/AndroidRuntime(3393): java.lang.NoClassDefFoundError: com.nineoldandroids.view.animation.AnimatorProxy 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.sothree.slidinguppanel.SlidingUpPanelLayout.onPanelDragged(SlidingUpPanelLayout.java:974) 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.sothree.slidinguppanel.SlidingUpPanelLayout.access$8(SlidingUpPanelLayout.java:964) 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.sothree.slidinguppanel.SlidingUpPanelLayout$DragHelperCallback.onViewPositionChanged(SlidingUpPanelLayout.java:1204) 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.sothree.slidinguppanel.ViewDragHelper.dragTo(ViewDragHelper.java:1393) 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.sothree.slidinguppanel.ViewDragHelper.processTouchEvent(ViewDragHelper.java:1127) 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.sothree.slidinguppanel.SlidingUpPanelLayout.onTouchEvent(SlidingUpPanelLayout.java:875) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.view.View.dispatchTouchEvent(View.java:3938) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:903) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1733) 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1151) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.app.Activity.dispatchTouchEvent(Activity.java:2096) 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1717) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2215) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.view.ViewRoot.handleMessage(ViewRoot.java:1886) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.os.Handler.dispatchMessage(Handler.java:99) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.os.Looper.loop(Looper.java:123) 04-11 10:56:35.778: E/AndroidRuntime(3393): at android.app.ActivityThread.main(ActivityThread.java:3687) 04-11 10:56:35.778: E/AndroidRuntime(3393): at java.lang.reflect.Method.invokeNative(Native Method) 04-11 10:56:35.778: E/AndroidRuntime(3393): at java.lang.reflect.Method.invoke(Method.java:507) 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 04-11 10:56:35.778: E/AndroidRuntime(3393): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 04-11 10:56:35.778: E/AndroidRuntime(3393): at dalvik.system.NativeStart.main(Native Method) 04-11 10:57:17.100: E/AndroidRuntime(3443): FATAL EXCEPTION: main 04-11 10:57:17.100: E/AndroidRuntime(3443): java.lang.NoClassDefFoundError: com.nineoldandroids.view.animation.AnimatorProxy 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.sothree.slidinguppanel.SlidingUpPanelLayout.onPanelDragged(SlidingUpPanelLayout.java:974) 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.sothree.slidinguppanel.SlidingUpPanelLayout.access$8(SlidingUpPanelLayout.java:964) 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.sothree.slidinguppanel.SlidingUpPanelLayout$DragHelperCallback.onViewPositionChanged(SlidingUpPanelLayout.java:1204) 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.sothree.slidinguppanel.ViewDragHelper.dragTo(ViewDragHelper.java:1393) 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.sothree.slidinguppanel.ViewDragHelper.processTouchEvent(ViewDragHelper.java:1127) 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.sothree.slidinguppanel.SlidingUpPanelLayout.onTouchEvent(SlidingUpPanelLayout.java:875) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.view.View.dispatchTouchEvent(View.java:3938) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:903) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1733) 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1151) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.app.Activity.dispatchTouchEvent(Activity.java:2096) 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1717) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2215) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.view.ViewRoot.handleMessage(ViewRoot.java:1886) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.os.Handler.dispatchMessage(Handler.java:99) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.os.Looper.loop(Looper.java:123) 04-11 10:57:17.100: E/AndroidRuntime(3443): at android.app.ActivityThread.main(ActivityThread.java:3687) 04-11 10:57:17.100: E/AndroidRuntime(3443): at java.lang.reflect.Method.invokeNative(Native Method) 04-11 10:57:17.100: E/AndroidRuntime(3443): at java.lang.reflect.Method.invoke(Method.java:507) 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 04-11 10:57:17.100: E/AndroidRuntime(3443): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 04-11 10:57:17.100: E/AndroidRuntime(3443): at dalvik.system.NativeStart.main(Native Method)

    opened by rahulwadhai 4
  • inconsistent animation behavior

    inconsistent animation behavior

    I am using this library to implement side navigation like facebook app.

    It's really easy to setup. I have a framelayout with content view and menu view. The content view sits on top of the menu view.

    on version 4.0:

    I call following method to slide the contentview to the right. I can click on the menu item which is way I want it to behave. ObjectAnimator.ofFloat(contentView, "translationX", theSlideX).start();

    the same code on version 2.3.3, it's behaving differently. When content view slides out. I can see the menu view but when I click on the menu view, the content view is the one which receives the click event. how do i fix this?

    opened by shredmaster 4
  • onclick event on animated imageview

    onclick event on animated imageview

    The onclick event on animated view is not working. i followed following way

    animate(tv).setDuration(2000).rotationYBy(720).x(100).y(100);

        tv.setOnClickListener(this);
    
    opened by manjunathab 4
  • ViewHelper.setScaleX/Y breaks touch and redraw on android 2.3

    ViewHelper.setScaleX/Y breaks touch and redraw on android 2.3

    I'd like to use NineOldAndroid to scale complex views on android 2.3

    Example I have a view with one button. I scale down the view to to 0.5 both X/Y. On older devices (2.3 or lower) the button cannot be clicked anymore (the hit area doesn't seem to follow the transformation), and layout falls into pieces.

    Is there anything we can do?

    Thank you, Akos

    opened by kapuia 3
  • Visibility setting ignored on an animated View

    Visibility setting ignored on an animated View

    On PreHoneycomb devices, setting the visibility of an animated view to View.GONE or View.INVISIBLE doesn't have the desired effect. (i.e., the view is still visibile on the screen.)

    Steps to reproduce:

    1. Start an infinite animation on a view.
    2. Stop the animation after some time and immediately set the visibility of the view to GONE/Invisible
    3. The view is still visibile on the screen.

    Sample code follows:

    package com.hrushikesh.uiprototypes;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ImageView;
    
    import com.nineoldandroids.animation.ObjectAnimator;
    import com.nineoldandroids.animation.ValueAnimator;
    
    public class AnimationTest extends Activity {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_animation_test);
    
            final ImageView view = (ImageView) findViewById(R.id.imageView1);
    
            final ObjectAnimator animator = ObjectAnimator.ofFloat(view, "alpha",
                    0.5f);
            animator.setRepeatCount(ValueAnimator.INFINITE);
            animator.setRepeatMode(ValueAnimator.REVERSE);
            animator.start();
    
            view.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    if (animator.isRunning()) {
                        animator.end();
                        view.setVisibility(View.INVISIBLE);
                    } else {
                        view.setVisibility(View.VISIBLE);
                        animator.start();
                    }
                }
            });
        }
    }
    
    
    opened by hrushikesh 3
  • Different behaviors between pre 3.0 and 3.0+ versions

    Different behaviors between pre 3.0 and 3.0+ versions

    Hi,

    First of all thanks for sharing this compatibility library with the community. I am using NineOldAndroids, basically to solve this particular problem.

    Before using NineOldAndroids, my application would crash on pre-honeycomb devices with a ClassNotFoundException (for ObjectAnimator) and after using it, it runs fine but... I still get the same problem that I had with the animation API (the position of the animated view is still bound to its previous location). I should mention, that I don't have this problem on post-honeycomb devices.

    I don't really understand why, given that your compatibility library is an extraction of the entire new API as I understand.

    What do you think?

    Thanks!

    opened by Amokrane 3
  • ViewPropertyAnimator.start() (and some other methods) fails on Honeycomb

    ViewPropertyAnimator.start() (and some other methods) fails on Honeycomb

    The cause is that such methods were added on API level 14 (4.0) so they don't exist on the original implementation in 3.1 and 3.2, hence causing the proxy to fail when such methods are called. I could try fixing it but preffered to open a bug report in order to get your opinion on the subject and what would your preffered solution be.

    These methods are: cancel() getDuration() getStartDelay() setStartDelay() start()

    Looking at the code, I also noticed that a proxy for the native implementation of ViewPropertyAnimator is used for all API levels 11 and greater when said class was only added on API level 12. As I said, I can fix it and submit a pull request (and hopefully do it right, haven't worked with git before) but would like to hear your opinion on what the ideal solution would be. I didn't dig deep into the code yet but it doesn't seem possible to only proxy some methods and not others, so my suggestion would be to only use the native implementation on API level 14 and onwards.

    opened by BeowulfBjornson 3
  • StackOverflowError on devices < 3.0

    StackOverflowError on devices < 3.0

    I get the same exception when running Path Animation, Toggles or ViewPropertyAnimator Demo on an Xperia Play (2.3) and Galaxy S (2.1) here.

    E/AndroidRuntime( 4016): java.lang.StackOverflowError E/AndroidRuntime( 4016): at java.util.WeakHashMap.poll(WeakHashMap.java:569) E/AndroidRuntime( 4016): at java.util.WeakHashMap.get(WeakHashMap.java:473) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:33) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) E/AndroidRuntime( 4016): at com.nineoldandroids.view.animation.AnimatorProxy.wrap(AnimatorProxy.java:35) < and so on>

    opened by dcaunt 3
  • Support for pause mecanism introduce in 4.4 ?

    Support for pause mecanism introduce in 4.4 ?

    Hey, At Android team they introduce many new functionality with 4.4 (and more with 5.0) for Animations, like the Pause/Resume mechanism for example, which is very useful when running long animations (and your app is paused..)

    Do you plan to add more 4.x & 5.0 functions to your library ? and particularly the pause/resume mechanism, that I need for my personal case ? (you can tell me to add it myself, but not sure not forget something in copying it from source; you know far better your library)

    opened by benjaminVadon 2
  • Animate() is not applicable[...]

    Animate() is not applicable[...]

    Hello,

    I'm trying to use NineOldAndroids library to rewrite my animations but I can't animate my RelativeLayouts.

    Code : animate(otherContainer).setAlpha(Math.max(0f, Math.min(2f, 1f - 9f * Math.abs(diffX2) / v.getWidth()/2)));

    And I got the error : "The method animate() in the type View is not applicable for the arguments (RelativeLayout)"

    Any idea ?

    opened by marshallino16 2
  • possible to 'unstick' animation?

    possible to 'unstick' animation?

    I'm not entirely sure if this is a bug, a limitation, or user-error, so I'm posting here and hoping for some advice.

    I'm attempting to set the layoutparams of an already-animated view in the onAnimationEnd method as suggested in many of the closed issues, but it seems that when I do this, the view itself (where its clickable) moves correctly but the animated version (where it shows up) is then offset by the same number of pixels. This is my first dive into legitimate animation, but it appears that the animated translation (x + 150) is kind of 'sticking' even after I update the layoutparams, rather than clearing itself as I was hoping. I dont see any methods or documentation for clearing it manually via code - is there a way to do that?

    Also, if i take the opposite approach, and update the layout params first and then animate from -x to 0, it works correctly with the exception of a momentary blip between the layout applying and the animation starting (I'm assuming that the animator calls invalidate() on the first frame before applying transitions?). if there is a way to skip the 'fill before'-esque initial draw, that would work fine for me too.

    I'm using nineoldandroids-2.4.0.jar and API 10. Any help would be appreciated.

    opened by Drenet 2
  • when generate signed apk

    when generate signed apk

    Error:Execution failed for task ':app:transformClassesWithJarMergingForRelease'.

    com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/nineoldandroids/animation/Animator$AnimatorListener.class

    opened by eslamwael74 0
  • Can the nineoldandroids exist side by side with windowSoftInputMode.adjustResize?

    Can the nineoldandroids exist side by side with windowSoftInputMode.adjustResize?

    hi! I'v got a question! When I use nineoldandroids to animate,when i trigger a edittext's ontouch event ,it works!But,the system windowSoftInputMode.adjustResize does not work! Does nineoldandroids conflict with the windowSoftInputMode?I mean that,I can only have one choice between them? In my case,i use the nineoldandroids to change a layout, and i use the windowSoftInputMode.adjustResize to avoid the keyboard covering the edittext . So poor my English is ! Wish your reply !3x!

                ViewHelper.setTranslationY(findViewById(R.id.tab_icons), -App.Dp2Px(39 + 100));
                ViewHelper.setTranslationY(findViewById(R.id.tab_texts), -App.Dp2Px(39 + 45));
        ViewHelper.setTranslationY(findViewById(R.id.pager), -App.Dp2Px(39 + 45));
    
    opened by zhangrongxun 1
  • Android Studio: Failed to resolve

    Android Studio: Failed to resolve

    Hi,

    From today it's impossible to reach the library in the maven. Android studio give me this output:

    "Failed to resolve: com.nineoldandroids:library:2.4.0+".

    Is it a problem with Maven or the library is - at the moment - down in the maven central?

    Thanks.

    opened by antoniodisanto92 3
  • Samsung Compatibility-Fix 2.3.6 - 2.3.7

    Samsung Compatibility-Fix 2.3.6 - 2.3.7

    This fix resolves issues with older Samsung Android phones, when inflating objectanimator xml files. Its a rather old fix I implemented for older Samsung phones.

    opened by andacaydin 0
  • Animators defined in XMLs should work with Build Tools 22

    Animators defined in XMLs should work with Build Tools 22

    Problem: Build Tools 22 removes attributes targeted to higher versions of Android from xml file, copying the original file to an appropriate bucket. On lower versions of Android (f.e. 9) NineOldAndroids can't access such attributes (as they are now in animator-vXX bucket) and crashes.

    Solution: let's use our own custom attributes instead of Android attributes. All XMLs defining animators should be changed - project namespace should be used instead of Android one.

    Fixes #80

    opened by serso 0
Android Animation Easing Functions. Let's make animation more real!

Android Easing Functions This project is originally from my another project, AndroidViewAnimation, which is an animation collection, to help you make

代码家 2.5k Jan 4, 2023
With MVVM Architecture pattern using Android Architecture Components This is a sample app demonstrating Youtube player animation using constraint layout

Youtube UI/UX Animation This is a sample app demonstrating Youtube UX/UI animation using ConstraintLayout.It implements the Keyframe Animation feature

Burhanuddin Rashid 866 Dec 29, 2022
Road Runner is a library for android which allow you to make your own loading animation using a SVG image

Road Runner Road Runner is a library for android which allow you to make your own loading animation using a SVG image Sample video View in Youtube Dem

Adrián Lomas 1.2k Nov 18, 2022
Android library to control Transition animates. A simple way to create a interactive animation.

TransitionPlayer Android library to control Transition animates. A simple way to create a interactive animation. Demo1 SimpleTransition Code: ....

林法鑫 1.2k Dec 17, 2022
FPSAnimator is very easy animation library for Android TextureView and SurfaceView.

FPSAnimator A simple but powerful Tween / SpriteSheet / ParabolicMotion / animation library for Android TextureView and SurfaceView. Features The cont

Masayuki Suda 756 Dec 30, 2022
Android library to make notes drop animation for music players

VusikView Min SDK 11 Screnshots How to use If you want use this library, you can download project and import it into your workspace and add the projec

Chetan Kaushik 119 Nov 29, 2022
An simple & awesome animation library written in Kotlin for Android

An simple & awesome animation library written in Kotlin for Android

Romman Sabbir 53 Oct 17, 2022
Android library to control Transition animates. A simple way to create a interactive animation.

TransitionPlayer Android library to control Transition animates. A simple way to create a interactive animation. Demo1 SimpleTransition Code: ....

林法鑫 1.2k Dec 17, 2022
A fluent Android animation library

ViewAnimator A fluent Android animation library ! Usage Animate multiple view from one method ViewAnimator .animate(image) .transla

Florent CHAMPIGNY 2.7k Jan 3, 2023
Android Library to create Lottie animation view dialog easily with a lot of customization

LottieDialog Android Library to create Lottie animation view dialog easily with a lot of customization Why you should use Lottie Dialog You have no li

Amr Hesham 39 Oct 7, 2022
Android Library to create Lottie animation view dialog easily with a lot of customization

Android Library to create Lottie animation view dialog easily with a lot of customization

Amr Hesham 39 Oct 7, 2022
Chandrasekar Kuppusamy 799 Nov 14, 2022
User onboarding library with smooth animation of objects and background colors

SlidingTutorial Cleveroad introduces Sliding Tutorial Library for Flutter Hey guys, hope you haven’t started developing a tutorial for your Flutter ap

Cleveroad 127 Dec 31, 2022
This library provides easy ways to add onboarding or pager screens with different animation and indicators.

WalkThroughAndroid Make amazing OnBoarding Screens easily for your app with different colorful animations, fonts, styles, and many more. Customize you

MindInventory 33 Sep 9, 2022
A library support circular imageview with rotation animation

Circular Imageview with Rotate Animation This is a fast and efficient open source custom imageview for Android that allow to easy implement disc anima

Nhien Nguyen 5 Jul 24, 2022
🪐 Jetpack Compose animation library that allows you to implement animations such as shared element transition.

Orbitary ?? Jetpack Compose animation library that allows you to implement animations such as shared element transition. Download Gradle Add the depen

Jaewoong Eum 503 Dec 30, 2022
FadingToolbar is an animation library which fades out your footer view in a ScrollView/RecyclerView and fades in a toolbar title

FadingToolbar is an animation library which fades out your footer view in a ScrollView/RecyclerView and fades in a toolbar title (analogue of the LargeTitle animation in iOS)

Hanna 9 Nov 3, 2022
🪐 Jetpack Compose animation library that allows you to implement animations such as shared element transition.

?? Jetpack Compose animation library that allows you to implement animations such as shared element transition.

Jaewoong Eum 504 Jan 2, 2023
A component for flip animation on Android, which is similar to the effect in Flipboard iPhone/Android

android-flip Aphid FlipView is a UI component to accomplish the flipping animation like Flipboard does. A pre-built demo APK file for Android OS 2.2+

Bo 2.8k Dec 21, 2022