我有一个内置于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的过渡?