LocalActivityManager destroyActivity с анимацией - PullRequest
0 голосов
/ 07 марта 2012

Я хочу добавить эффект анимации, когда метод вызывает метод обратного вызова. И я использую ActivityGroup для реализации Activitymanger и использую LocalActivityManager для запуска и возврата любого действия.

при запуске упражнения добавить анимацию, используя следующий код

public static void startActivity(Intent intent, String id) {

    View view = mLocalActivityManager.startActivity(id,
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();

    Animation hyperspaceJump = AnimationUtils.loadAnimation(mActivityGroup,
            R.anim.dync_in_from_right);
    view.startAnimation(hyperspaceJump);

    view.setTag(id);
    mPreviousActivityTag = getCurrentActivityTag();
    mViewContainer.addView(view);
}

но я не знаю, как добавить эффект анимации, когда действие возвращается к тому, которое запускает действие cur. обратный метод такой

public static void removeCurrentActivity() {

    String tag = getCurrentActivityTag();
    if (com.ct.ipaipai.global.Utily.isStringEmpty(tag) == false) {

        int cnt = getActivityCount();
        mViewContainer.removeViewAt(cnt - 1);
        View view = mLocalActivityManager.destroyActivity(tag, true).getDecorView();
    }
}

Кто-нибудь знает это?

спасибо

1 Ответ

2 голосов
/ 07 марта 2012

Я не знаю, какой ActivityGroup вы используете, но когда я использовал ActivityGroup иногда в прошлом, я делал что-то вроде этого

String tag = getCurrentActivityTag();
LocalActivityManager manager = getLocalActivityManager();
Animation animation = null;
animation = AnimationUtils.loadAnimation(this, R.anim.de_rail);
Window oldWindow = manager.getCurrentActivity().getWindow();
if(oldWindow != null)
{
    View v =oldWindow.getDecorView();
    v.setBackgroundResource(R.drawable.app_pink_background);
    v.startAnimation(animation);                
}
manager.destroyActivity(tag, true);
// now set old Activity View
Intent lastIntent = manager.getActivity(lastId).getIntent();
Window newWindow = manager.startActivity(lastId, lastIntent);
if(newWindow != null)
{
    View view = newWindow.getDecorView();
    setContentView(view);           
}

где R.anim.de_rail который был на самом деле de_rail.xml был примерно таким:

<?xml version="1.0" encoding="utf-8"?>
<translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0%p"
    android:toXDelta="100%p"
    android:duration="400" />

Вы можете найти мою модифицированную версию здесь .Показывает анимацию при запуске дочернего элемента Activity и завершающем дочернем элементе Activity.

...