0

如何以编程方式打开动画?我正在使用overridePendingTransition();. 除非我自己打开动画,否则它不起作用。谁能告诉我如何以编程方式打开显示/动画设置中的动画?我正在使用 overridePendingTransition(); 开启新活动。

这是我的xml

grow_fadein_center

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromXScale="0.6" android:toXScale="1.0"
           android:fromYScale="0.6" android:toYScale="1.0"
           android:pivotX="50%" android:pivotY="50%"
           android:duration="@android:integer/config_longAnimTime" />
    <alpha android:interpolator="@anim/decelerate_interpolator"
            android:fromAlpha="0.0" android:toAlpha="1.0"
            android:duration="@android:integer/config_longAnimTime" />
</set>

收缩淡出中心:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromXScale="1.0" android:toXScale="0.5"
           android:fromYScale="1.0" android:toYScale="0.5"
           android:pivotX="50%" android:pivotY="50%"
           android:duration="@android:integer/config_longAnimTime" />
    <alpha android:interpolator="@anim/accelerate_interpolator"
            android:fromAlpha="1.0" android:toAlpha="0.0"
            android:duration="@android:integer/config_longAnimTime"/>
</set>

这是我用来打开意图的代码

btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                ContentResolver cr = getContentResolver();
                Settings.System.putInt(cr, Settings.System.WINDOW_ANIMATION_SCALE, 0);

                Intent intent=new Intent(context,Second.class);


                startActivity(intent);
                overridePendingTransition(R.anim.grow_fade_in_center, R.anim.shrink_fade_out_center);
                finish();

//testing on textview worked without turning system animation on.
                Animation animation=AnimationUtils.loadAnimation(context, R.anim.grow_fade_in_center);
                txt.startAnimation(animation);




            }
        });

这仅在打开动画时有效。我通过设置->显示->动画这样做

我发现

ContentResolver cr = getContentResolver();
Settings.System.putInt(cr, Settings.System.WINDOW_ANIMATION_SCALE, 0);

通过设置整数来打开或关闭动画!但这对我不起作用!我需要的是如何以编程方式打开/关闭系统设置中的动画?

4

1 回答 1

0

您不需要像那样务实地启动动画。

你只需要overridePendingTransition(R.anim.grow_fade_in_center, R.anim.shrink_fade_out_center);在正确的地方打电话。

public void onClick(View v) {
    startActivity(HomeActivity.class);
    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
    finish();
}

也在做:

Settings.System.putInt(cr, Settings.System.WINDOW_ANIMATION_SCALE, 0);

将禁用窗口动画!

于 2012-11-19T09:27:56.593 回答