ozodrukh / circularreveal Goto Github PK
View Code? Open in Web Editor NEWLollipop ViewAnimationUtils.createCircularReveal for everyone 4.0+
License: MIT License
Lollipop ViewAnimationUtils.createCircularReveal for everyone 4.0+
License: MIT License
Looking at the code, I didn't find any motivation to keep min compatibility to API 10.
Could you lower it to 9 at least, please?
Thanks in advance.
Regards
Hi, I'm testing this library with a function 'toggleMenu' which displays a LinearLayout (like whatsapp does). The code is the same as in the example, but when I click it several times very fast I get a StackOverflowError, any ideas? Thank you very much
is it possible that we have support for setStartDelay
anytime soon? its helpful for a lot of scenarios.
for example showing a view but this view can be hidden by reversing the animation but with delay for example 5 second.
Hi,
calling mFabToolbar.expandFab(); on pre lollipop device, causes following exception:
java.lang.NoSuchMethodError: io.codetail.animation.SupportAnimator.setDuration at com.bowyer.app.fabtoolbar.FabToolbar.expandPreLollipop(FabToolbar.java:368) at com.bowyer.app.fabtoolbar.FabToolbar.expandFab(FabToolbar.java:241) at com.shygunsys.mu.cybermobile.ui.MainActivityFragment$1.onClick(MainActivityFragment.java:61)
When I try to instantiate a class using the context of the activity throws me the following error:
java.lang.NoClassDefFoundError: io.codetail.animation.ViewAnimationUtils$SimpleAnimationListener
Hi
I was animating a viewA (inside a RevealFrameLayout) with
SupportAnimator anim = io.codetail.animation.ViewAnimationUtils.createCircularReveal(viewA, cx, cy, 0, finalRadius);
after anim.start() I was also animating some children inside viewA (simple fade).
Since android 6 the fade of the children does not work anymore. If I test it in a simulator on android <6 it works.
do you know anything about it ?
I am using circular reveal for following layout.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.CoordinatorLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="utilstore.com.collapsibleactivity.MainActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/appbar_padding_top"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay">
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
<io.codetail.widget.RevealLinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linear"
android:orientation="horizontal"
android:background="#000000">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button"
android:layout_gravity="center_vertical" />
</LinearLayout>
</io.codetail.widget.RevealLinearLayout>
</FrameLayout>
with following code
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
final LinearLayout l = (LinearLayout) findViewById(R.id.linear);
l.setVisibility(View.INVISIBLE);
int cx = (l.getLeft() + l.getRight());
int cy = l.getTop();
int radius = Math.max(l.getWidth(), l.getHeight());
final SupportAnimator animator = ViewAnimationUtils.createCircularReveal(l, cx, cy, 0, radius);
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.setDuration(400);
final SupportAnimator animator_reverse = animator.reverse();
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
l.setVisibility(View.VISIBLE);
animator.start();
}
});
the only thing I have seen working is
animator.setDuration(400);
Reveal animation is not working at all.
I am experimenting on it in API 16.
Is there something else that's needed to be followed?
b kh
Hi
i want set fillafter , but i cant do this . how i can do this?
Add set an animation delay
Thank you!
This is a feature request. When next screen is reveal through circular reveal it would be very convinient and estethicaly pleasing to use inverted reveal when navigating back.
How invertedCircularReveal would work. Circle (with specified centerX, centerY) starts at MAX radius and shrinks to 0 dp or any other end-radius and dissapears, instead of revealing view inside the circle it reveals the view outside of circle's fill area (so the inside of the circle is the 'transaprent area' instead of outside as it is in the regular circle reveal).
Hey , please guide me . I want to put this animation(circular reveal) for fragment transitions . But really confused on part how to do it ?
public abstract class SimpleAnimatorListener implements AnimatorListener {
@Override
public void onAnimationStart() {
}
@Override
public void onAnimationEnd() {
}
@Override
public void onAnimationCancel() {
}
@Override
public void onAnimationRepeat() {
}
}
which can simply code,cause sometimes I want to override part of the methods,not all of them.
К сожалению патч не помог.
новый sample.apk вылетает. собрал проект из исходников (кстати не без тацев с бубуном- какой IDE и какой версии вы пользуетесь, в Android Studio приходится снижать версию build tools и убирать из кофигов minify), вот лог ошибки
11-20 14:16:59.144 23184-23184/io.codetail.circualrevealsample E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.UnsupportedOperationException
at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:435)
at io.codetail.circualrevealsample.widget.FloatingActionButton.onDraw(FloatingActionButton.java:134)
at android.view.View.draw(View.java:11014)
at android.view.View.getDisplayList(View.java:10444)
at android.view.ViewGroup.drawChild(ViewGroup.java:3149)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.View.getDisplayList(View.java:10442)
at android.view.ViewGroup.drawChild(ViewGroup.java:3149)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.View.getDisplayList(View.java:10442)
at android.view.ViewGroup.drawChild(ViewGroup.java:3149)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.View.getDisplayList(View.java:10442)
at android.view.ViewGroup.drawChild(ViewGroup.java:3149)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.View.getDisplayList(View.java:10442)
at android.view.ViewGroup.drawChild(ViewGroup.java:3149)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.View.getDisplayList(View.java:10442)
at android.view.ViewGroup.drawChild(ViewGroup.java:3149)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.View.draw(View.java:11017)
at android.widget.FrameLayout.draw(FrameLayout.java:450)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2175)
at android.view.View.getDisplayList(View.java:10444)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:883)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2089)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1781)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2666)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:4977)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
На будущее просьба - включайте в sample.apk логгирование, чтобы без сборки можно было прочитать лог, и собирайте исходники для Beta-версий IDE (я так понимаю у вас сейчас Anroid Studio из Canary channel)
ругается вот на эти строчки в FloatingActionButton.java
@OverRide
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
final int state = canvas.save();
canvas.clipPath(mCirclePath); // на этой строчке и происходит Exeption
canvas.drawPath(mCirclePath, mCirclePaint);
mRippleDrawable.draw(canvas);
if(mActionIcon != null){
final int beforeActionState = canvas.save();
canvas.translate( (mCircle.x - (mActionSize / 2)), (mCircle.y - (mActionSize / 2)));
mActionIcon.draw(canvas);
canvas.restoreToCount(beforeActionState);
}
canvas.restoreToCount(state);
}
спасает все так-же добавление в конструктор
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
is it possible to open an activity with reveal?
This would allow to have custom attributes like "layout_below" for custom views which extend RevealRelativeLayout.
In my case, I have a custom view extending RevealFrameLayout with 2 or 3 children and their alignment depends on a particular root view element (which is the custom view's sibling). Both the custom view and the sibling are in a RelativeLayout.
I'm tring to have a CircularReveal on an ImageView when a fragment is opened.
I know that in order to measure views in fragment I have to call addOnGlobalLayoutListener and inside onGlobalLayout I can measure views.
I can see the correct width/height ecc... but the ImageView never shows up.
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
public boolean alreadMeasure = false;
@Override
public void onGlobalLayout() {
if (!alreadMeasure) {
int cx = (myView.getWidth()) / 2;
int cy = (myView.getHeight()) / 2;
int finalRadius = Math.max(myView.getWidth(), myView.getHeight());
SupportAnimator animator =
ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius);
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.setDuration(800);
animator.start();
alreadMeasure = true;
} else {
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
});```
I have a circular reveal frame layout which works fine 5.0+ but when testing on a Pre-L device none of the elements inside the frame layout seem to respond to touch events, at first I thought it was an issue with focusing so I intercepted the touch event and disabled the event for the parent and rerouted it to inside the frame layout but it still didnt work.
Any replacement? or have to implement our own?
Is there any way to use this library with an AnimatorSet object?
I was reviewing the code for your RevealFrameLayout, your solution to clip the canvas is pretty clever! However, why did you override drawChild?
You should override draw instead. With your current implementation you make the clip path calculation for each view in the layout, however it could be done all at once in draw.
Also I believe your current implementation wouldn't clip the background drawable but I haven't tested that.
Error:(87, 14) Failed to resolve: com.github.ozodrukh:CircularReveal:1.3.1
Show in File
Show in Project Structure dialog
The animation is great 👍
There is build error when I add dependency into my project,
detail : https://jitpack.io/com/github/ozodrukh/CircularReveal/1.0.3/build.log
Just try to import Source Code 1.1.1 and got the error. Dont know what's going wrong with it but it showing error on
While clicking on Open File it redirect to build.gradle. Please have look it.
apply plugin: 'com.android.library'
apply plugin: 'android-maven'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 22
}
}
dependencies {
compile 'com.nineoldandroids:library:2.4.0'
}
Thanks in advance
I want to Apply this Reveal transition to my Activity.
Is it possible to make it as a Activity transition?
Ironically, doesn't seem to perform any animation on Android L (LRX210)
Is there any way to programmatically cancel a running circular reveal animation? Perhaps something like
if (animation.isRunning()) {
animation.cancel();
}
The reveal effect is not showing above the WebView, but it is below the web view in an activity.
XML:
<?xml version="1.0" encoding="utf-8"?>
<io.codetail.widget.RevealFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/myLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:id="@+id/myCard"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardUseCompatPadding="true"
app:contentPadding="5dp">
<WebView
android:id="@+id/myWeb"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.v7.widget.CardView>
</LinearLayout>
</io.codetail.widget.RevealFrameLayout>
ACTIVITY:
containerX = (myLayout.getLeft() + myLayout.getRight()) / 2;
containerY = (myLayout.getTop() + myLayout.getBottom()) / 2;
finalRadius = Math.max(myLayout.getWidth(), myLayout.getHeight());
animator = ViewAnimationUtils.createCircularReveal(myLayout, containerX, containerY, 0, finalRadius);
animator.setDuration(1000);
animator.addListener(openAnimatorListener);
animator.start();
Hi,
I am getting below error when I am trying to run the apk. Please note build is happening fine.
Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
java.util.zip.ZipException: duplicate entry: io/codetail/widget/RevealLinearLayout.class
I am getting this exception on pre-lollipop devices. Any ideas why? I have imported the library and upon clicking the class name, it takes me to its source code as well.
java.lang.NoClassDefFoundError: io.codetail.animation.RevealAnimator$RevealRadius at io.codetail.animation.RevealAnimator.<clinit>(RevealAnimator.java:20) at io.codetail.animation.ViewAnimationUtils.createCircularReveal(ViewAnimationUtils.java:62)
Hi,
I am having trouble implementing RevealFrameLayout basically as navigation menu. I want to set it's visibility to GONE during Activity creation. When I tap on nav button I want to open it a set visibility to VISIBLE. Tapping button again will reverse reveal-animate the view and set it's visibility to GONE again. When I tried animating it without setting visibility of the view, it's working fine. (but not desired effect)
Here is my code:
public void openDrawer() {
if (animator != null && animator.isRunning()) {
return;
}
drawer.setVisibility(VISIBLE);
final Point displaySize = DisplayUtils.getDisplaySize((Activity) getContext());
final int finalRadius = Math.max(displaySize.x, displaySize.y);
animator = ViewAnimationUtils.createCircularReveal(revealLayout, 0, 0, 0, finalRadius);
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.setDuration(REVEAL_ANIM_TIME);
animator.start();
drawerOpened = true;
}
public boolean isDrawerOpen() {
return drawerOpened;
}
public void closeDrawer() {
if (animator != null && animator.isRunning()) {
return;
}
animator = animator.reverse();
animator.addListener(new EmptyRevealAnimatorListener() {
@Override
public void onAnimationEnd() {
animator = null;
drawer.setVisibility(GONE);
}
});
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.setDuration(REVEAL_ANIM_TIME);
animator.start();
drawerOpened = false;
}
Any suggestions? Thank you.
Добрый день. К сожалению предоставленный вами пример не работает (HTC One V API 15). Скорее всего причина во включенном аппаратном ускорении по умолчанию в ICS. Спасает что-то типа:
public RevealFrameLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
mRevealPath = new Path();
}
Аналогичная ситуация на других устройствах (в настройкак аппаратное ускорение отключено)
Лог ошибки
11-19 18:28:47.023 4122-4122/io.codetail.circualrevealsample E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.UnsupportedOperationException
at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:435)
at io.codetail.widget.RevealFrameLayout.drawChild(RevealFrameLayout.java:104)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.View.getDisplayList(View.java:10442)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2896)
at android.view.View.getDisplayList(View.java:10407)
at android.view.ViewGroup.drawChild(ViewGroup.java:3149)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2788)
at android.view.View.getDisplayList(View.java:10442)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2896)
at android.view.View.getDisplayList(View.java:10407)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2896)
at android.view.View.getDisplayList(View.java:10407)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2896)
at android.view.View.getDisplayList(View.java:10407)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2896)
at android.view.View.getDisplayList(View.java:10407)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:2896)
at android.view.View.getDisplayList(View.java:10407)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:883)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2089)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1781)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2666)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:4977)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
IMO, anything supporting below API 14 is a waste of time and resources - NineOldsAndroid dependency could be removed and save us thousands of method calls and kilobytes..
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
applicationId "com.example.app"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0.1"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.github.ozodrukh:CircularReveal:1.1.0'
}
I've got following error.
Error:(31, 13) Failed to resolve: com.github.ozodrukh:CircularReveal:1.1.0
My gradle version : 1.2.3
Is there a problem on dependency?
Hi, I'm receiving the following crash log on my Nexus 4 running on Lollipop:
11-21 00:56:09.012 3049-3049/io.codetail.circualrevealsample E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: io.codetail.circualrevealsample, PID: 3049
java.lang.ClassCastException: android.animation.RevealAnimator cannot be cast to android.animation.ObjectAnimator
at io.codetail.circualrevealsample.MainActivity$2.onClick(MainActivity.java:99)
at android.view.View.performClick(View.java:4756)
at dreamers.graphics.TouchTracker$PerformClick.run(TouchTracker.java:199)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
It is weird that running on Android 5.1,ViewAnimationUtils.createCircularReveal does not have any animation starting.
The animation is square instead of round while I set the minSdkVersion="14" in manifest.
I have used the version 1.0.2 but it still didn't work.
Hello,
What is the dependency we should add to our build.gradle in order to use this library? I know I can download the .aar but I can't find the dependency that has been uploaded to Maven Central.
Thank you in advance!
java.lang.UnsupportedOperationException at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:412)
At 4.0.3 version device
If you set a listener on the supportanimator and then call start() everything works fine. If, however, you call supportanimator.reverse().start() then the listener does not fire at all. If you call reverse() and then open a new line and call start() it works properly.
supportanimator.reverse().start() -> doesn't work
supportanimator.reverse();
supportanimator.start(); -> works
I'm unable to add an AnimatorListener
to an instance of your SupportAnimator
. On a regular Circular Reveal Animation, I just do this:
Animator reveal = ViewAnimationUtils.createCircularReveal(view, cX, cY, 0, radius);
reveal.setInterpolator(new AccelerateInterpolator(2.0f));
reveal.setDuration(500);
reveal.addListener(new Animator.AnimatorListener() {
public void onAnimationStart(Animator animation) {}
public void onAnimationCancel(Animator animation) {}
public void onAnimationRepeat(Animator animation) {}
public void onAnimationEnd(Animator animation) {
// DO SOME STUFF HERE
}
});
reveal.start();
There doesn't seem to be a setListener()
or addListener()
or anything similar.
Is it possible to create the reverse Circular Reveal effect?
On lollipop devices, RevealFrameLayout isn't filled, children inside it aren't visibles. Therefore it works well on pre-lollipop devices, but I had to remove the "@aar" from the dependency to get it functional.
int cx = (view.getLeft() + view.getRight()) / 2;
int cy = (view.getTop() + view.getBottom()) / 2;
int h = view.getHeight();
int w = view.getWidth();
int finalRadius = (int) Math.sqrt(h * h + w * w);
SupportAnimator animator =
ViewAnimationUtils.createCircularReveal(view, cx, cy, 0, finalRadius);
animator.start();
Hi, i'm using your great library with a FAB attached, is possible to change the color of it during the animation? Maybe using some methods like : http://stackoverflow.com/a/33404475
Reveal animation works buttery smooth. But when I integrated Google AdMob ads into my app, reveal animation became buggy? Worst part is, Ads are integrated in one activity and reveal animation is implemented in another activity, yet it becomes unstable. I tried banner ads only.
On API 16.
final Integer cx = (viewToReveal.getLeft() + viewToReveal.getRight()) / 2,
cy = (viewToReveal.getTop() + viewToReveal.getBottom()) / 2;
final SupportAnimator animator = ViewAnimationUtils.createCircularReveal
(viewToReveal, cx, cy, 0, Math.max(viewToReveal.getWidth(), viewToReveal.getHeight()));
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.setDuration(context.getResources().getInteger(R.integer.circular_reveal_duration_millis));
viewToReveal.setVisibility(View.VISIBLE);
animator.start();
I having this error on Android 5.0.2, Samsung
java.lang.IllegalStateException: Already started!
at android.view.RenderNodeAnimator.start(RenderNodeAnimator.java:177)
at io.codetail.animation.SupportAnimatorLollipop.start(SupportAnimatorLollipop.java:35)
at com.bakar.view.animation.RevealLayoutAnim.hide(RevealLayoutAnim.java:69)
at com.bakar.ui.publish.MessagePublishActivity.hideReveal(MessagePublishActivity.java:549)
at com.bakar.ui.publish.MessagePublishActivity$4.onClick(MessagePublishActivity.java:424)
at android.view.View.performClick(View.java:5217)
at android.view.View$PerformClick.run(View.java:20983)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6141)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.