我有三张图片描绘了公司的标志,名称和口号。我想以这样的方式制作这三个图像的动画,首先是徽标,然后是名称,然后是口号。在这三个动画之后,我希望屏幕消失并显示一个新的活动。这该怎么做?请帮帮我。
答案 0 :(得分:1)
如果我理解正确的话,你会在同一个屏幕上显示这三个图像,然后在一定时间后显示每个图像。
只要在启动画面显示和时你不打算做任何事情,图像之间的时间少于五秒,你就不会拥有使用另一个线程。
所以,最简单的方法是设置一个图像,睡一觉,然后显示下一个图像。使用布尔值,这样就不会在用户按下后退按钮之前显示两次启动画面,然后才能按下后退按钮。
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"/>
答案 1 :(得分:1)
为您的第一个动画添加一个侦听器,并在方法中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);
}
}
}
答案 2 :(得分:0)
有两种方法可以实现这一目标,您可以阅读它们here
希望这有帮助!