Android应用启动时如何无需按钮触发图片的淡入淡出动画
Android应用启动自动触发图片淡入动画实现方案
你只需要调整MainActivity中的代码逻辑,将动画启动逻辑从点击事件方法中移到onCreate生命周期方法末尾即可,同时修正原代码中控件类型转换错误的问题:
核心修改点
- 原
tapToFade方法中错误将ImageView类型的firstImage强转为Button,会导致运行崩溃,需要修正类型 - 将动画加载、启动的逻辑直接放到
onCreate方法中给firstImage设置完图片资源的代码之后,应用启动加载页面时就会自动执行动画 - 不需要保留点击触发的
tapToFade方法可直接删除,也可保留用于后续拓展点击逻辑
修改后完整代码
package android.example.verification; import androidx.appcompat.app.AppCompatActivity; import android.media.MediaPlayer; import android.os.Bundle; import android.util.Log; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; MediaPlayer mysong; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG,"onCreate: started."); mysong = MediaPlayer.create(MainActivity.this, R.raw.bc); mysong.start(); mysong.setLooping(true); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //Logo设置 int imageResource = getResources().getIdentifier("@drawable/logo", null, this.getPackageName()); ImageView firstImage = (ImageView) findViewById(R.id.firstImage); firstImage.setImageResource(imageResource); // 启动自动淡入动画 Animation fadeAnimation = AnimationUtils.loadAnimation(this, R.anim.fade); firstImage.startAnimation(fadeAnimation); // 如果需要动画结束后执行其他逻辑,比如跳转到其他页面,可添加动画监听 /* fadeAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) {} @Override public void onAnimationEnd(Animation animation) { // 此处写动画结束后的逻辑,比如跳转页面 // Intent intent = new Intent(MainActivity.this, HomeActivity.class); // startActivity(intent); // finish(); } @Override public void onAnimationRepeat(Animation animation) {} }); */ } @Override protected void onPause() { super.onPause(); mysong.release(); finish(); } }
你已准备的fade动画可根据需求调整时长,淡入效果一般设置android:fromAlpha="0.0"、android:toAlpha="1.0",时长设置1000-3000毫秒即可。
内容的提问来源于stack exchange,提问作者NaoyaShinota
相关产品推荐
相关产品推荐

