android - 活动之间的淡入淡出
问题描述
我有一个内置在 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" />
我在我的主要活动中实现它,如下所示:
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 的过渡?
解决方案
推荐阅读
- angular - 如何跳过 *ngFor 中的第一项和最后一项
- javascript - Js函数顶部计算阶乘不起作用
- java - 处理来自多个方法的请求
- react-native - TextInput 从右到左输入数字并自动添加零以进行货币输入
- sql-server - 将数据对象(pk、fk、角色、索引等)从数据库复制到另一个数据库
- python - Stripe python 将现有卡/源附加到新客户
- r - 在 R 中加入 3 列不同长度的列
- c++ - 使用类?c++ & sfml 和标题中的 15 个字符
- javascript - NativeBase 手风琴的“renderHeader”属性显示参数“扩展”的未定义值
- pdf - Docx4J 将中文转为pdf