You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:36:04