Как анимировать изображения одно за другим в андроиде - PullRequest
1 голос
/ 11 июня 2011

У меня есть три изображения, которые изображают логотип компании, название и слоган.Я хочу анимировать эти три изображения таким образом, чтобы сначала появился логотип, затем название, а затем слоган.После этих трех анимаций я хочу, чтобы экран исчез и отображал новое действие.Как это сделать?Пожалуйста, помогите мне.

Ответы [ 3 ]

1 голос
/ 11 июня 2011

добавьте слушателю свою первую анимацию, и в методе: onAnimationEnd(), затем запустите свою вторую анимацию второго изображения и так далее. Пример:

ПРИМЕЧАНИЕ: инициализирует видимость img2 и img3 до GONE

public class YourActivity extends Activity implements AnimationListener{
......
@Override 
public void onCreate( Bundle savedInstanceState){
super.onCreate(savedInstanceState);
....

ScaleAnimation a1 , a2 , a3;
//define your animations 
a1 = new ScaleAnimation(0.0f,1.0f);
a2 = new ScaleAnimation(0.0f,1.0f);
a3 = new ScaleAnimation(0.0f,1.0f);

// duration and behavior of ur animations
a1.setFillAfter(true);
a1.setDuration(1000);
a2.setFillAfter(true);
a2.setDuration(1000);
a3.setFillAfter(true);
a3.setDuration(1000);

a1.setAnimationListener(this);
a2.setAnimationListener(this);
a3.setAnimationListener(this);

img1.startAnimation(a1);
}

Override
public void onAnimationEnd(Animation a){
if(a == a1 ){ 
   img2.setVisibility(View.VISIBLE);
   img2.startAnimation(a2);
}

if(a == a2){
   img3.setVisibility(View.VISIBLE);
   img3.startAnimation(a3);
}

if(a == a3){
   startActivity(new Intent(YourActivity.this , SecondActivity.class);
}
}
}
1 голос
/ 11 июня 2011

Если я вас правильно понимаю, у вас будут эти три изображения на одном экране, а затем каждое изображение будет отображаться через определенное время.

Пока вы ничего не собираетесь делатьв то время как на заставке отображается и время между изображениями составляет менее пяти секунд, у вас нет для использования другого потока.

Итак, самый простой способбыть, чтобы установить изображение, спать, скажем, секунду, а затем показать следующее изображение.Используйте логическое значение, чтобы не показывать заставку дважды, если пользователь нажимает кнопку «Назад», прежде чем вы сможете обработать нажатие кнопки «Назад».

if(!showedSplash)
{
    logoImageView.setImageDrawable(R.id.drawable.company_logo);
    Thread.sleep(1000); // sleep for a second (1000 ms)
    nameImageView.setImageDrawable(R.id.drawable.company_name);
    Thread.sleep(1000);
    sloganImageView.setImageDrawable(R.id.drawable.company_slogan);
    Thread.sleep(10000);
    showedSplash = true;'
}

Теперь, чтобы перейти к следующему действию

Intent i = new Intent(this,activity2.class);    
startActivity(i);   

Не забудьте поместить манифест в манифест!

<activity android:name=".activity2" android:label="@string/activity2_name"/>
0 голосов
/ 11 июня 2011

Есть несколько способов добиться этого, вы можете прочитать о них здесь

Надеюсь, это поможет!

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