Кнопка Android Spring - PullRequest
       2

Кнопка Android Spring

0 голосов
/ 17 ноября 2018

Как добиться эффекта пружин на кнопке в Android Studio. Так что это уменьшается и увеличивается, когда вы нажимаете его. Я провел много поисков, прежде чем опубликовать этот вопрос, но ничего не смог получить.

1 Ответ

0 голосов
/ 17 ноября 2018

Сначала создайте файл ресурсов типа анимации.Затем внутри xml добавьте следующую анимацию (spring.xml):

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <scale
        android:duration="2500"
        android:fromXScale="0.5"
        android:toXScale="1.0"
        android:fromYScale="0.5"
        android:toYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"/>
</set>

, за 2,5 секунды кнопка изменится с половины до полного размера.Если вы хотите эффект весны, вам понадобится вспомогательный класс.Для многих моих программ я использовал следующее:

class MyInterpolator implements android.view.animation.Interpolator {
    private double mAmplitude = 1;
    private double mFrequency = 10;

    MyBounceInterpolator(double amplitude, double frequency) {
        mAmplitude = amplitude;
        mFrequency = frequency;
    }

    public float getInterpolation(float time) {
        return (float) (-1 * Math.pow(Math.E, -time/ mAmplitude) *
                Math.cos(mFrequency * time) + 1);
    }
}

, если вы хотите настроить анимацию программно, используйте следующий метод для вашей кнопки:

public void springView(View view) {
    Button button = (Button)findViewById(R.id.button);
    final Animation myAnimation = AnimationUtils.loadAnimation(this, R.anim.spring);

    MyInterpolator interpolator = new MyInterpolator(0.1, 10);
    myAnimation.setInterpolator(interpolator);

    button.startAnimation(myAnimation);
}

В зависимости от того, как пружина- если вы хотите эту кнопку, увеличьте значения внутри нового MyInterpolator (0,1, 10).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...