Android中的自定义活动过渡动画

时间:2013-08-08 06:16:53

标签: android android-animation

我的应用的当前流量是活动A - >活动B - >片段B 我正在尝试实现Activity转换动画。我已经阅读了许多关于使用overridependingtransition()的帖子,我已经实现了这些帖子中提到的几乎所有内容。不知何故,动画无效。

我需要这个才能在Android 2.2上运行,即sdkversion 8

这是代码:

Activity A 
oncreate method

Intent detailIntent = new Intent(this, WordDetailActivity.class);
            detailIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            detailIntent.putExtra(DbAdapter.KEY_ROWID, id);
                startActivity(detailIntent);
                overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);


 @Override
    protected void onPause() {
        super.onPause();
        overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
    }


Activity B

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
    }

如果有人也可以建议我使用任何替代方法来实现Android 2.2的活动转换,那将会很棒。

4 个答案:

答案 0 :(得分:6)

在手机设置中禁用其动画的手机不会显示活动过渡动画...所以不要指望它。

此外,您无法更改这些用户设置。

答案 1 :(得分:1)

而不是在onPause()

中执行onResume()
@Override
public void onResume() {
    super.onResume();
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}

并尝试使用`minSdk =“5”

修改

试试这个

Activity_A.this.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

Activity_B.this.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

编辑2

@Override
public void overridePendingTransition(int enterAnim, int exitAnim) {
    super.overridePendingTransition(enterAnim, exitAnim);
    Log.d(LOG_TAG, "In overridePendingTransition");
}

检查这个日志是否被命中,因为我们不知道这个方法被调用的天气?(把它放在A和B里面)

另请删除detailIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); falg 如果命中,则将super.overridePendingTransition(enterAnim, exitAnim);替换为super.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

答案 2 :(得分:1)

除startActivity之外,无需在其他任何地方写入。 这样写。

 Intent detailIntent = new Intent(this, WordDetailActivity.class);

 detailIntent.putExtra(DbAdapter.KEY_ROWID, id);
   startActivity(detailIntent);
 this.overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out)

答案 3 :(得分:0)

    //annination indside fragment to translate fragment

      getFragmentManager()
            .beginTransaction()
            .setCustomAnimations(R.animator.slide_in_right,
                    R.animator.slide_in_left_out,     
                                            R.animator.slide_in_left,
                    R.animator.slide_in_right_out)
            .replace(R.id.linearlayout, new mFragment())
            .addToBackStack("fragments")
            .commit();

  // add inside activity to translate activity

 Intent intent = new Intent(mContext, AbcActivity.class);
            startActivity(intent);
            overridePendingTransition(R.anim.slide_right_in,
                    R.anim.slide_left_out);

  // put this inside OnBackPressed 
    overridePendingTransition(R.anim.slide_left_in, R.anim.slide_right_out);