在活动之间淡入和淡出

时间:2019-09-29 13:18:47

标签: android textures android-animation

我有一个内置于android studio中的应用程序,可以在放置在纹理中的不同视频之间淡入淡出。我成功创建了淡入淡出,但它从视频淡入了白色,而不是随着新视频淡入下一个纹理

这是我的淡入淡出代码: 淡入:

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="0.0" android:toAlpha="1.0"
    android:fillAfter="true"
    android:duration="2000" />

淡出:

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="1.0" android:toAlpha="0.0"
    android:fillAfter="true"
    android:duration="2000" />

我在我的mainactivity中实现它是这样的:

view1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (mediaPlayer != null) {
            mediaPlayer.stop();
            mediaPlayer.release();
            mediaPlayer = null;
        }

        Intent startIntent = new Intent(getApplicationContext(), FirstVideoActivity.class);
        startActivity(startIntent);
        overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

    }
});

现在,它首先淡化为白色,然后显示firstvideoActivity。如何在不先变白的情况下让它在不同的视频之间淡化

更新

这是我即将更改为的另一项活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first);
    Log.d("oncreateee","I");
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

    myTexture = findViewById(R.id.textureBackground);
    myTexture.setSurfaceTextureListener(this);

    myTexture.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mediaPlayer != null) {
                mediaPlayer.stop();
                mediaPlayer.release();
                mediaPlayer = null;
            }

            Intent startIntent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(startIntent);
            overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

        }
    });
}

@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
    Surface surface = new Surface(surfaceTexture);
    mediaPlayer = MediaPlayer.create(this, R.raw.test1);

    mediaPlayer.setLooping(true);
    mediaPlayer.setSurface(surface);
    mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            mediaPlayer.start();
        }
    });
}

更新2: 好的,我现在注意到这是kitkat中的错误(这次需要针对该旧系统进行开发)是否还有其他方法可以创建适用于kitkat的过渡?

0 个答案:

没有答案
相关问题