标签: android-transitions

共享元素过渡-变换颜色

是否可以TextView通过共享的元素过渡为a动画,并在进行动画时另外从颜色过渡?

我正在从活动中的文本过渡到工具栏的文本,因此想在过渡时切换颜色...

android transition android-transitions shared-element-transition

6
推荐指数
0
解决办法
308
查看次数

使用未转换的片段进行sharedElment转换

AndroidStudio 2.3 Beta 1
Run Code Online (Sandbox Code Playgroud)

我试图让转换与片段一起工作,我使用的图像如何不转换.它只是正常弹出.

我已经创建了一个简单的应用程序来尝试让它工作.我有2个片段ListMovieFragmentDetailMovieFragment.1 MainActivity.

用户将单击图像ListMovieFragment以转换为DetailMovieFragment.

这是我的Transition xml change_image_transform:

<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <changeImageTransform/>
</transitionSet>
Run Code Online (Sandbox Code Playgroud)

ListMovieFragment:

public class ListMovieFragment extends Fragment {
    public interface MovieSelectedListener {
        void onMovieSelected(int movieId);
    }
    private MovieSelectedListener mMovieSelectedListener;

    public ListMovieFragment() {
    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        mMovieSelectedListener = (MovieSelectedListener)context;
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mMovieSelectedListener = null;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-transitions shared-element-transition

6
推荐指数
1
解决办法
1172
查看次数

以编程方式修改 overridePendingTransition 动画

我想用自定义翻译动画开始一个新活动,所以我在 xml 中对我的动画使用 overridePendingTransition。

overridePendingTransition(R.anim.enter_from_right, R.anim.exit_to_left)
Run Code Online (Sandbox Code Playgroud)

enter_from_right.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:fromXDelta="100%" android:toXDelta="0%"
    android:fromYDelta="0%" android:toYDelta="0%"
    android:duration="350" />
Run Code Online (Sandbox Code Playgroud)

有什么方法可以为活动过渡以编程方式修改/创建动画?在这种情况下,使用特定值动态修改 fromXDelta

android android-animation android-activity android-transitions activity-transition

6
推荐指数
1
解决办法
1255
查看次数

如何使用xml文件设置爆炸过渡

我正在尝试setEnterTransition使用explode.xml文件。

我尝试了这个

<?xml version="1.0" encoding="utf-8"?>
<transitionManager xmlns:android="http://schemas.android.com/apk/res/android">
    <transition android:transition="@transition/explode" />
</transitionManager>
Run Code Online (Sandbox Code Playgroud)

和这个

<?xml version="1.0" encoding="utf-8"?>
    <transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
        <explode
            android:duration="500"
            android:interpolator="@android:interpolator/bounce" />
 </transitionSet>
Run Code Online (Sandbox Code Playgroud)

但是爆炸动画没有用,有什么想法吗?

android android-animation android-transitions

6
推荐指数
1
解决办法
6281
查看次数

具有从 Drawerlayout 过渡的 Android 导航组件

是否可以使用android导航组件从抽屉布局中打开片段来更改过渡效果。android 文档中没有任何内容。

java android kotlin android-transitions android-jetpack

6
推荐指数
1
解决办法
1972
查看次数

淡入淡出在 MotionLayout 中不起作用

我正在尝试使用 alpha 和 motionLayout 制作淡入淡出的效果,但似乎不起作用。

这是我想要淡出的 imageView。

    <ImageView
    android:id="@+id/tijeras"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="8dp"
    android:contentDescription="@string/tijeras"
    android:src="@drawable/ic_tijeras" />
    </android.support.constraint.motion.MotionLayout>
Run Code Online (Sandbox Code Playgroud)

这是运动文件

<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <Transition
        app:duration="2000"
        app:constraintSetStart="@+id/start"
        app:constraintSetEnd="@+id/end">
        <KeyFrameSet>
            <KeyAttribute
                app:framePosition="0"
                app:motionTarget="@id/tijeras"
                android:alpha="1.0"/>
            <KeyAttribute
                app:framePosition="50"
                app:motionTarget="@id/tijeras"
                android:alpha="0.0"/>
        </KeyFrameSet>
    </Transition>
    <ConstraintSet android:id="@+id/start">
        <Constraint android:id="@+id/tijeras"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:alpha="1.0"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/logo"/>
    </ConstraintSet>
    <ConstraintSet android:id="@+id/end">
        <Constraint android:id="@+id/tijeras"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:alpha="1.0"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/logo"/>
    </ConstraintSet>
</MotionScene>
Run Code Online (Sandbox Code Playgroud)

我可以看到图像,但它没有进行 alpha 输入和输出。任何的想法?我需要触发它才能启动吗?

android android-transitions android-motionlayout

6
推荐指数
1
解决办法
2438
查看次数

带有 RecyclerView 的 Fragment 中的 Android 10 (Q) 过渡共享元素视图卡在固定位置

我通常自己解决问题,但这次我真的很生气,找不到合适的解决办法。

设想:

我有两个片段让我们说AB

片段 A 中,我从 Rest API 填充 RecyclerView(后来只有 RV)。

片段 B 中,我有 CollapsingToolbarLayout 的“详细视图”。

当我单击RV 中的项目时,我正在打开带有过渡的片段 B和一个共享元素,即AppCompatImageView,我在其中设置了本地可绘制对象。在片段 B 中CollapsingToolbarLayout 中的图像。

共享元素转换在片段 B 中有效 - 图像移动正确。当我单击后退按钮并且图像移回其在 RV 中的原始位置时,过渡也有效。

但是这里出现了一个我无法解决的问题。在两个片段中,特定图像都被卡在位置上,当我滚动 RV 或 CollapsingToolbarLayout 视图时,视图没有改变 - 在片段 A 中,滚动 RV 时图像没有移动,而在片段 B 中,图像在折叠/展开更改时没有隐藏。

有没有人遇到过这个问题,因为我不并且真的不理解这种行为。经过多年的发展,我从未发生过。

这是从片段 B 返回后片段 A 的屏幕截图

在这里,我正在执行带有转换的片段事务:

fun replaceFragmentWithTransition(context: Context,
                                          sharedElement: View,
                                          fm: FragmentManager?,
                                          layoutContainer: Int,
                                          fragment: Fragment, …
Run Code Online (Sandbox Code Playgroud)

android android-transitions fragment-transitions

6
推荐指数
1
解决办法
863
查看次数

返回 2 个屏幕时,Android 活动返回转换刹车

我做了一个简单的例子来证明ActivityOptions.makeSceneTransitionAnimation(activity).

我有 3 个活动:A、B 和 C。流程很简单:A -> B -> C

所有活动都具有相同的风格:

<style name="TransitionsTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="android:windowEnterTransition">@transition/slide_in_from_bottom</item>
    <item name="android:windowExitTransition">@transition/slide_out_to_bottom</item>
</style>
Run Code Online (Sandbox Code Playgroud)

每当我去:不播放A -> B -> C -> B (back button) -> A (back button)最后一个动画(A -> C)

仅在执行时它工作正常 A -> B -> A (back button)

以下是我开始活动的方式:

fun start(activity: Activity) {
            val intent = Intent(activity, TransitionActivityA::class.java) //or B or C
            val transitionsOptions = ActivityOptions.makeSceneTransitionAnimation(activity)
            activity.startActivity(intent, transitionsOptions.toBundle())
        }
Run Code Online (Sandbox Code Playgroud)

演示该问题的应用程序:https : //github.com/jkwiecien/AndroidCaseStudies/tree/transitions 使用分支transitions

这是Android错误还是我做错了什么?

android android-animation android-support-library android-transitions

6
推荐指数
1
解决办法
186
查看次数

Android:makeSceneTransition用于多个共享元素

我一直在尝试使用android站点上显示的示例示例在多个共享元素上实现动画转换

    ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
    Pair.create(view1, "agreedName1"),
    Pair.create(view2, "agreedName2"));
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在Eclipse IDE中的示例应用程序上实现此代码时,它说

The method makeSceneTransitionAnimation(Activity, View, String) in the type ActivityOptions is not applicable for the arguments (MyActivity, Pair<View,String>, Pair<View,String>)
Run Code Online (Sandbox Code Playgroud)

我可以在那里使用一些帮助.谢谢.

android android-transitions material-design

5
推荐指数
1
解决办法
365
查看次数

overridePendingTransition持续时间被忽略

我正在使用overridePendingTransition来设置我自己的活动转换.一切正常,除了我无法改变动画的持续时间,它被忽略.

slide_down.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator">

    <translate
        android:duration="2000"
        android:fromYDelta="0"
        android:toYDelta="100%p"
        android:zAdjustment="top"/>

</set>
Run Code Online (Sandbox Code Playgroud)

stay.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:fromYDelta="0%p"
    android:toYDelta="0%p"
    android:zAdjustment="top"/>
Run Code Online (Sandbox Code Playgroud)

持续时间设置为2000毫秒,但动画仍然只是一秒的一小部分.即使将其改为像10000这样的极端值也没有任何作用.

如果我在设置中更改开发人员选项中的动画,则动画持续时间对应于给定的设置.

Java代码供参考:

MainActivity.java

public void games(View view){

    startActivity(new Intent(MainActivity.this, GamesActivity.class));
    overridePendingTransition(R.anim.slide_up, R.anim.stay);


}
Run Code Online (Sandbox Code Playgroud)

谁有想法?

animation android android-transitions overridependingtransition

5
推荐指数
1
解决办法
646
查看次数