powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Завяз с анимацией
6 сообщений из 6, страница 1 из 1
Завяз с анимацией
    #38443622
Sp999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток всем!

Буду очень благодарен, если кто подскажет где тут грабли.
Хочу сделать анимационный пример - несколько шариков, подпрыгивающих на месте, чтобы вместе их движения напоминали синусоиду.
Сначала хотел просто назначить им разные анимации с разным временем старта и повтором.
1-й файл анимации:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator" >
    <translate
        android:duration="500"
        android:repeatCount="-1"
        android:repeatMode="reverse"
        android:fromYDelta="100"
        android:toYDelta="0" />
</set>


Во втором файле добавлена строка
Код: xml
1.
	android:startOffset="100"


В третьем файле добавлена строка
Код: xml
1.
	android:startOffset="200"

и т.д.
Ну и сам код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
   ivBall1 = (Ball)findViewById(R.id.ivBall1);
   ivBall2 = (Ball)findViewById(R.id.ivBall2);
...
   animationJumping1 = AnimationUtils.loadAnimation(this, R.anim.jump1);
   animationJumping2 = AnimationUtils.loadAnimation(this, R.anim.jump2);
...
   ivBall1.startAnimation(animationJumping1);
   ivBall2.startAnimation(animationJumping2);
...


Вроде работает, но через некоторое время начинается хаос - движение уже не похоже на синусоиду.
Подозреваю, что при повторах анимации элемент startOffset также отрабатывает, и из-за задержки порядок нарушается.

Тогда решил назначать всем шарам анимацию без стартовой задержки, но по таймеру.
в метод onCreate активности добавил:
Код: java
1.
2.
3.
4.
5.
6.
   timer = new Timer();
   timer.schedule(new TimerTask() {
      public void run() {
         setAnim();
      }
   }, 100);


В класс добавил метод
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
   void setAnim() {
      switch (++colorCount) {
      case 1:
         ivBall1.startAnimation(animationJumping1);
         break;
      case 2:
         ivBall2.startAnimation(animationJumping2);
         break;
...
      case 6:
         timer.cancel();
         break;
      }
   }


И тут приложение при запуске крашится.
Что я делаю не так?
...
Рейтинг: 0 / 0
Завяз с анимацией
    #38444887
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а нам гадать, почему крашится ?

текст logcat-а покажи
...
Рейтинг: 0 / 0
Завяз с анимацией
    #38444895
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вообще ты свою реализацию. что ли делаешь ?

для этого есть
android:interpolator="@android:anim/bounce_interpolator">
...
Рейтинг: 0 / 0
Завяз с анимацией
    #38450178
Sp999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джибса вообще ты свою реализацию. что ли делаешь ?

для этого есть
android:interpolator="@android:anim/bounce_interpolator">

bounce не подходит - у него затухающие движения.
Лог приложил (слова там по отдельности понятные, а вместе смысл понять не могу...)
...
Рейтинг: 0 / 0
Завяз с анимацией
    #38450424
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у вас с потоками проблема, там же явно написано.
вы пытаетесь работать с элементами, которые созданы были в главном потоке, из другого потока.
так нельзя делать

попробуйте так.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
private void setAnim()
	{
		this.runOnUiThread(AnimRunnable);
	}

private Runnable AnimRunnable = new Runnable() {
	public void run() {
	 switch (++colorCount) {
	      case 1:
	         ivBall1.startAnimation(animationJumping1);
	         break;
	      case 2:
	         ivBall2.startAnimation(animationJumping2);
	         break;
		...
	      case 6:
	         timer.cancel();
        		 break;
      }
		}
	};
...
Рейтинг: 0 / 0
Завяз с анимацией
    #38452797
Sp999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джибс
Спасибо большое! Теперь заработало!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Завяз с анимацией
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]