applibgroup / HarmonyOS-Knowledgebase

This repository contains code samples of HarmonyOS Training
Apache License 2.0
15 stars 6 forks source link

What is the alternative class in Harmony OS for AccelerateInterpolator and OvershootInterpolator in Android OS? #70

Open SubhamKarmakar24 opened 3 years ago

SubhamKarmakar24 commented 3 years ago

Describe the query

I am writing a class in JAVA to port a library from Android to Harmony OS. In the Android code given below for the method onSelectedY(boolean, float, int), it requires a constructor of the class AccelerateInterpolator to be added to a method.

private void onSelectedY(final boolean isTop, float exitX, int duration)
{
        ....
        ....

        this.frame.animate()
                .setDuration(duration)
                .setInterpolator(new AccelerateInterpolator())
                .x(exitX)
                .y(exitY)
                .setListener(new AnimatorListenerAdapter()
                {
                    @Override
                    public void onAnimationEnd(Animator animation)
                    {
                        if(isTop)
                        {
                            mFlingListener.onCardExited();
                            mFlingListener.topExit(dataObject);
                        }
                        else
                        {
                            mFlingListener.onCardExited();
                            mFlingListener.bottomExit(dataObject);
                        }
                        isAnimationRunning = false;
                    }
                })
                .rotation(getVerticalExitRotation(isTop));
}

For equivalent Harmony OS component of class AccelerateInterpolator, there is an interface named Animator.TimelineCurve. But the issue with it being an interface is that it doesn't have a constructor, which is needed in this case. If I directly use the interface, I would have to override the interface here itself, but that can't be done as there is nothing to override manually.

Same goes for OvershootInterpolator.

What could be the work-around for this case?

Regards, Subham

Create the query with harmonyos tag in stackoverflow and share the link here:

https://stackoverflow.com/questions/69159281/what-is-the-alternative-class-in-harmony-os-for-accelerateinterpolator-and-overs

Additional information

Developer Platform: Windows DevEco Studio version: 2.1.0.303 SDK API version: 5 SDK version: 2.1.1.21 Device: Not required Device OS version: Not required

Regards, Subham