2

Добрый день, все!Кнопка анимации в android

Сегодня я получил, как я полагаю, очень интересный вопрос. На моей работе мы создаем службу знакомств, и одной из основных функций будет экран, на котором отображаются фотографии разных девушек (или парней), и пользователь нажимает кнопку «Горячая» или «Нет». Обе эти кнопки отображаются под фотографией на экране. Наши аналитики говорят (бог «благословляй» их ...), что мы должны внедрять какую-то «игровую» механику, поэтому нужно такое: когда пользователь нажимает, например, кнопку «Нет» - начинает замерзать и закрывать со льдом, затем он ломается, а затем отображается следующая фотография. Это не масштаб или поворот или перевод анимации ... сама кнопка, ее «безболезненный» контент должен меняться в течение некоторого небольшого периода времени (возможно, второго или двух). Это меня очень пугает, потому что я думаю о масштабировании этих кнопок на разных устройствах и о разных проблемах с анимацией из девяти патчей и ручных кадров, которые я собираюсь сделать - я хочу плакать. ..

Скажите, пожалуйста, мне нужен ваш опыт - это действительно сделать такую ​​вещь ??? Или, может быть, есть какие-либо рода обходные пути или что-то ...

Пожалуйста, я почти паника ...

ответ

3
  1. Сделайте образы для своей анимации и сохраните их в папке в формате png.
  2. Анимируйте эти изображения с помощью кода, приведенного ниже.
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
android:oneshot="true"> 
<item android:drawable="@drawable/rocket_thrust1" android:duration="200" /> 
<item android:drawable="@drawable/rocket_thrust2" android:duration="200" /> 
<item android:drawable="@drawable/rocket_thrust3" android:duration="200" /> 
</animation-list> 

Тогда

AnimationDrawable rocketAnimation; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image); 
    rocketImage.setBackgroundResource(R.drawable.rocket_thrust); 
    rocketAnimation = (AnimationDrawable) rocketImage.getBackground(); 
} 

public boolean onTouchEvent(MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
    rocketAnimation.start(); 
    return true; 
    } 
    return super.onTouchEvent(event); 
} 
0

Вы можете анимировать альфа, местоположение и просто о каком-либо свойстве кнопки с помощью ObjectAnimators и ValueAnimators.

Если вы хотите, чтобы пользовательские анимации, такие как ледяной эффект, вам нужно было сделать это самостоятельно.

2

Создать список изображений в вытяжке папке:

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/loading" 
android:oneshot="false" > 
<item android:drawable="@drawable/preloader_01" android:duration="50" /> 
<item android:drawable="@drawable/preloader_02" android:duration="50" /> 
<item android:drawable="@drawable/preloader_03" android:duration="50" /> 
<item android:drawable="@drawable/preloader_04" android:duration="50" /> 

использования ImageVie w img вместо кнопки и установите список в качестве фона в xml, затем в коде используйте AnimationDrawable для запуска анимации

AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground(); 
    // Start the animation (looped playback by default). 
    frameAnimation.start();` 
Смежные вопросы