我正在尝试实现此动画。因此,我实现了Recyclerview
。
在recyclerview项目上,单击“我正在打开全屏对话框”。我试图从YoYo动画库中实现动画,但是它的效果不尽如人意。这是我的全屏对话代码:
private void showDialog() {
View dialogView = LayoutInflater.from(context).inflate(R.layout.work_rv_details_dialog_layout, null);
Dialog dialog = new Dialog(context, android.R.style.Theme_Light);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(dialogView);
YoYo.with(Techniques.FadeInUp)
.duration(1500)
.playOn(dialogView);
dialog.show();
}
有帮助吗? 谢谢...
答案 0 :(得分:0)
首先,您要从“第一活动”共享到“第二活动”的所有视图,都应在视图android:transitionName="logo"
中添加此属性
例如第一个活动中的ImageView
<ImageView
android:id="@+id/imgLogo"
android:transitionName="logo"
android:src="@drawable/logo"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_width="400dp"
android:layout_height="150dp" />
像这样开始第二个活动
final ImageView imgLogo = (ImageView) findViewById(R.id.imgLogo);
Intent intent = new Intent(SplashScreen.this,Login.class);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(SplashScreen.this, imgLogo, "logo");
startActivity(intent, options.toBundle());
}else {
startActivity(intent);
}
然后在第二个活动中再次为各个视图指定相同的transitionName
<ImageView
android:id="@+id/imgLogo"
android:transitionName="logo"
android:src="@drawable/logo"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_width="200dp"
android:layout_height="100dp" />
就是这样!